summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoonas Niilola <juippis@gentoo.org>2021-11-09 13:41:58 +0200
committerJoonas Niilola <juippis@gentoo.org>2021-11-09 13:41:58 +0200
commit37d0f50bdb1e7779632a7fe4c6df16158fd2f114 (patch)
treeb554b31d1000177dec8d298d5c42739c606f919e /app-emulation/lxd/files
parentapp-misc/broot: bump to 1.7.1 (diff)
downloadgentoo-37d0f50bdb1e7779632a7fe4c6df16158fd2f114.tar.gz
gentoo-37d0f50bdb1e7779632a7fe4c6df16158fd2f114.tar.bz2
gentoo-37d0f50bdb1e7779632a7fe4c6df16158fd2f114.zip
app-emulation/lxd: add fix for >btrfs-progs-5.14 safety check
Closes: https://bugs.gentoo.org/822393 Signed-off-by: Joonas Niilola <juippis@gentoo.org>
Diffstat (limited to 'app-emulation/lxd/files')
-rw-r--r--app-emulation/lxd/files/lxd-4.0.8-btrfs-progs-5.14-safety-check-fix.patch75
1 files changed, 75 insertions, 0 deletions
diff --git a/app-emulation/lxd/files/lxd-4.0.8-btrfs-progs-5.14-safety-check-fix.patch b/app-emulation/lxd/files/lxd-4.0.8-btrfs-progs-5.14-safety-check-fix.patch
new file mode 100644
index 000000000000..f32debff5e3b
--- /dev/null
+++ b/app-emulation/lxd/files/lxd-4.0.8-btrfs-progs-5.14-safety-check-fix.patch
@@ -0,0 +1,75 @@
+From 5efac9cfed92a890dc1a073fe60b1c814c305267 Mon Sep 17 00:00:00 2001
+From: =?UTF-8?q?St=C3=A9phane=20Graber?= <stgraber@ubuntu.com>
+Date: Thu, 4 Nov 2021 14:05:27 -0400
+Subject: [PATCH] lxd/storage/btrfs: Support 5.14.2
+MIME-Version: 1.0
+Content-Type: text/plain; charset=UTF-8
+Content-Transfer-Encoding: 8bit
+
+Closes #9418
+
+Signed-off-by: Stéphane Graber <stgraber@ubuntu.com>
+---
+ lxd/storage/drivers/driver_btrfs.go | 18 ++++++++++++++++++
+ lxd/storage/drivers/driver_btrfs_utils.go | 8 +++++++-
+ 2 files changed, 25 insertions(+), 1 deletion(-)
+
+diff --git a/lxd/storage/drivers/driver_btrfs.go b/lxd/storage/drivers/driver_btrfs.go
+index e6a64bf8136..a47be766f8f 100644
+--- a/lxd/storage/drivers/driver_btrfs.go
++++ b/lxd/storage/drivers/driver_btrfs.go
+@@ -17,10 +17,12 @@ import (
+ "github.com/lxc/lxd/shared/api"
+ "github.com/lxc/lxd/shared/units"
+ "github.com/lxc/lxd/shared/validate"
++ "github.com/lxc/lxd/shared/version"
+ )
+
+ var btrfsVersion string
+ var btrfsLoaded bool
++var btrfsPropertyForce bool
+
+ type btrfs struct {
+ common
+@@ -64,6 +66,22 @@ func (d *btrfs) load() error {
+ }
+ }
+
++ // Check if we need --force to set properties.
++ ver5142, err := version.Parse("5.14.2")
++ if err != nil {
++ return err
++ }
++
++ ourVer, err := version.Parse(btrfsVersion)
++ if err != nil {
++ return err
++ }
++
++ // If running 5.14.2 or older, we need --force.
++ if ourVer.Compare(ver5142) > 0 {
++ btrfsPropertyForce = true
++ }
++
+ btrfsLoaded = true
+ return nil
+ }
+diff --git a/lxd/storage/drivers/driver_btrfs_utils.go b/lxd/storage/drivers/driver_btrfs_utils.go
+index e1a359e8490..0618e29e6f2 100644
+--- a/lxd/storage/drivers/driver_btrfs_utils.go
++++ b/lxd/storage/drivers/driver_btrfs_utils.go
+@@ -308,7 +308,13 @@ func (d *btrfs) setSubvolumeReadonlyProperty(path string, readonly bool) error {
+ return nil
+ }
+
+- _, err := shared.RunCommand("btrfs", "property", "set", "-ts", path, "ro", fmt.Sprintf("%t", readonly))
++ args := []string{"property", "set"}
++ if btrfsPropertyForce {
++ args = append(args, "-f")
++ }
++ args = append(args, "-ts", path, "ro", fmt.Sprintf("%t", readonly))
++
++ _, err := shared.RunCommand("btrfs", args...)
+ return err
+ }
+