From 4f395199c1f749328168ef12f3c065b563559ed2451bf31382c01b9968cf8cad Mon Sep 17 00:00:00 2001 From: Robert Schweikert Date: Mon, 27 Nov 2017 23:54:11 +0000 Subject: [PATCH] Accepting request 545985 from home:kukuk:branches:Cloud:Tools - Add cloud-init-resize-ro-btrfs.patch + cc_resizefs fails if the current root is a read-only btrfs subvolume, use an always writeable subvolume instead [bsc#1042913] OBS-URL: https://build.opensuse.org/request/show/545985 OBS-URL: https://build.opensuse.org/package/show/Cloud:Tools/cloud-init?expand=0&rev=99 --- cloud-init-resize-ro-btrfs.patch | 20 ++++++++++++++++++++ cloud-init.changes | 7 +++++++ cloud-init.spec | 1 + 3 files changed, 28 insertions(+) create mode 100644 cloud-init-resize-ro-btrfs.patch diff --git a/cloud-init-resize-ro-btrfs.patch b/cloud-init-resize-ro-btrfs.patch new file mode 100644 index 0000000..3a482ad --- /dev/null +++ b/cloud-init-resize-ro-btrfs.patch @@ -0,0 +1,20 @@ +--- cloudinit/config/cc_resizefs.py ++++ cloudinit/config/cc_resizefs.py 2017/11/27 11:55:37 +@@ -59,7 +59,16 @@ + + + def _resize_btrfs(mount_point, devpth): +- return ('btrfs', 'filesystem', 'resize', 'max', mount_point) ++# That btrfs utilities are using a path and not a device is bad, ++# because the subvolume specified by '/' could be read-only ++# and btrfs will wrongly fail. Correct fix would be to mount the ++# real root of the filesystem (subvolid=5) and resize that. But ++# using /.snapshots as workaround is Ok, too, since this is ++# normally writeable. ++ if mount_point == '/' and os.path.isdir("/.snapshots"): ++ return ('btrfs', 'filesystem', 'resize', 'max', '/.snapshots') ++ else: ++ return ('btrfs', 'filesystem', 'resize', 'max', mount_point) + + + def _resize_ext(mount_point, devpth): diff --git a/cloud-init.changes b/cloud-init.changes index 7e0c4db..38be71c 100644 --- a/cloud-init.changes +++ b/cloud-init.changes @@ -1,3 +1,10 @@ +------------------------------------------------------------------- +Mon Nov 27 13:21:13 CET 2017 - kukuk@suse.de + +- Add cloud-init-resize-ro-btrfs.patch + + cc_resizefs fails if the current root is a read-only btrfs + subvolume, use an always writeable subvolume instead [bsc#1042913] + ------------------------------------------------------------------- Sun Nov 19 20:43:46 UTC 2017 - rjschwei@suse.com diff --git a/cloud-init.spec b/cloud-init.spec index 1ab6c4c..ee835ba 100644 --- a/cloud-init.spec +++ b/cloud-init.spec @@ -48,6 +48,7 @@ Patch27: cloud-init-sysconfig-netpathfix.patch Patch29: datasourceLocalDisk.patch Patch34: cloud-init-tests-set-exec.patch Patch35: cloud-init-final-no-apt.patch +Patch36: cloud-init-resize-ro-btrfs.patch BuildRequires: fdupes BuildRequires: filesystem # pkg-config is needed to find correct systemd unit dir