* FAILED: patch "[PATCH] Btrfs: allow empty subvol= again" failed to apply to 4.16-stable tree @ 2018-06-21 21:16 gregkh 2018-07-15 19:53 ` Sudip Mukherjee 0 siblings, 1 reply; 3+ messages in thread From: gregkh @ 2018-06-21 21:16 UTC (permalink / raw) To: osandov, dsterba; +Cc: stable The patch below does not apply to the 4.16-stable tree. If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <stable@vger.kernel.org>. thanks, greg k-h ------------------ original commit in Linus's tree ------------------ >From 37becec95ac31b209eb1c8e096f1093a7db00f32 Mon Sep 17 00:00:00 2001 From: Omar Sandoval <osandov@fb.com> Date: Mon, 21 May 2018 17:07:19 -0700 Subject: [PATCH] Btrfs: allow empty subvol= again I got a report that after upgrading to 4.16, someone's filesystems weren't mounting: [ 23.845852] BTRFS info (device loop0): unrecognized mount option 'subvol=' Before 4.16, this mounted the default subvolume. It turns out that this empty "subvol=" is actually an application bug, but it was causing the application to fail, so it's an ABI break if you squint. The generic parsing code we use for mount options (match_token()) doesn't match an empty string as "%s". Previously, setup_root_args() removed the "subvol=" string, but the mount path was cleaned up to not need that. Add a dummy Opt_subvol_empty to fix this. The simple workaround is to use / or . for the value of 'subvol=' . Fixes: 312c89fbca06 ("btrfs: cleanup btrfs_mount() using btrfs_mount_root()") CC: stable@vger.kernel.org # 4.16+ Signed-off-by: Omar Sandoval <osandov@fb.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com> diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c index c67fafaa2fe7..81107ad49f3a 100644 --- a/fs/btrfs/super.c +++ b/fs/btrfs/super.c @@ -323,6 +323,7 @@ enum { Opt_ssd, Opt_nossd, Opt_ssd_spread, Opt_nossd_spread, Opt_subvol, + Opt_subvol_empty, Opt_subvolid, Opt_thread_pool, Opt_treelog, Opt_notreelog, @@ -388,6 +389,7 @@ static const match_table_t tokens = { {Opt_ssd_spread, "ssd_spread"}, {Opt_nossd_spread, "nossd_spread"}, {Opt_subvol, "subvol=%s"}, + {Opt_subvol_empty, "subvol="}, {Opt_subvolid, "subvolid=%s"}, {Opt_thread_pool, "thread_pool=%u"}, {Opt_treelog, "treelog"}, @@ -461,6 +463,7 @@ int btrfs_parse_options(struct btrfs_fs_info *info, char *options, btrfs_set_opt(info->mount_opt, DEGRADED); break; case Opt_subvol: + case Opt_subvol_empty: case Opt_subvolid: case Opt_subvolrootid: case Opt_device: ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: FAILED: patch "[PATCH] Btrfs: allow empty subvol= again" failed to apply to 4.16-stable tree 2018-06-21 21:16 FAILED: patch "[PATCH] Btrfs: allow empty subvol= again" failed to apply to 4.16-stable tree gregkh @ 2018-07-15 19:53 ` Sudip Mukherjee 2018-07-16 6:59 ` Greg KH 0 siblings, 1 reply; 3+ messages in thread From: Sudip Mukherjee @ 2018-07-15 19:53 UTC (permalink / raw) To: gregkh; +Cc: osandov, dsterba, stable [-- Attachment #1: Type: text/plain, Size: 611 bytes --] Hi Greg, On Fri, Jun 22, 2018 at 06:16:35AM +0900, gregkh@linuxfoundation.org wrote: > > The patch below does not apply to the 4.16-stable tree. > If someone wants it applied there, or to any other stable or longterm > tree, then please email the backport, including the original git commit > id to <stable@vger.kernel.org>. The attached backported patch should apply to 4.16-stable tree. The list of enum was later sorted by: 416a72022e43 ("btrfs: sort and group mount option definitions") and so this commit was failing to apply. Backported by putting this new enum at its proper place. -- Regards Sudip [-- Attachment #2: 0001-Btrfs-allow-empty-subvol-again.patch --] [-- Type: text/x-diff, Size: 2591 bytes --] >From cef7464ef76058ffcd1608a995ff46ac3d7db2af Mon Sep 17 00:00:00 2001 From: Omar Sandoval <osandov@fb.com> Date: Mon, 21 May 2018 17:07:19 -0700 Subject: [PATCH] Btrfs: allow empty subvol= again commit 37becec95ac31b209eb1c8e096f1093a7db00f32 upstream I got a report that after upgrading to 4.16, someone's filesystems weren't mounting: [ 23.845852] BTRFS info (device loop0): unrecognized mount option 'subvol=' Before 4.16, this mounted the default subvolume. It turns out that this empty "subvol=" is actually an application bug, but it was causing the application to fail, so it's an ABI break if you squint. The generic parsing code we use for mount options (match_token()) doesn't match an empty string as "%s". Previously, setup_root_args() removed the "subvol=" string, but the mount path was cleaned up to not need that. Add a dummy Opt_subvol_empty to fix this. The simple workaround is to use / or . for the value of 'subvol=' . Fixes: 312c89fbca06 ("btrfs: cleanup btrfs_mount() using btrfs_mount_root()") CC: stable@vger.kernel.org # 4.16+ Signed-off-by: Omar Sandoval <osandov@fb.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com> Signed-off-by: Sudip Mukherjee <sudipm.mukherjee@gmail.com> --- fs/btrfs/super.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/fs/btrfs/super.c b/fs/btrfs/super.c index 4b817947e00f..8f1e67d0c8c5 100644 --- a/fs/btrfs/super.c +++ b/fs/btrfs/super.c @@ -308,8 +308,9 @@ static void btrfs_put_super(struct super_block *sb) } enum { - Opt_degraded, Opt_subvol, Opt_subvolid, Opt_device, Opt_nodatasum, - Opt_nodatacow, Opt_max_inline, Opt_alloc_start, Opt_nobarrier, Opt_ssd, + Opt_degraded, Opt_subvol, Opt_subvol_empty, Opt_subvolid, + Opt_device, Opt_nodatasum, Opt_nodatacow, Opt_max_inline, + Opt_alloc_start, Opt_nobarrier, Opt_ssd, Opt_nossd, Opt_ssd_spread, Opt_thread_pool, Opt_noacl, Opt_compress, Opt_compress_type, Opt_compress_force, Opt_compress_force_type, Opt_notreelog, Opt_ratio, Opt_flushoncommit, Opt_discard, @@ -335,6 +336,7 @@ enum { static const match_table_t tokens = { {Opt_degraded, "degraded"}, {Opt_subvol, "subvol=%s"}, + {Opt_subvol_empty, "subvol="}, {Opt_subvolid, "subvolid=%s"}, {Opt_device, "device=%s"}, {Opt_nodatasum, "nodatasum"}, @@ -440,6 +442,7 @@ int btrfs_parse_options(struct btrfs_fs_info *info, char *options, btrfs_set_opt(info->mount_opt, DEGRADED); break; case Opt_subvol: + case Opt_subvol_empty: case Opt_subvolid: case Opt_subvolrootid: case Opt_device: -- 2.11.0 ^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: FAILED: patch "[PATCH] Btrfs: allow empty subvol= again" failed to apply to 4.16-stable tree 2018-07-15 19:53 ` Sudip Mukherjee @ 2018-07-16 6:59 ` Greg KH 0 siblings, 0 replies; 3+ messages in thread From: Greg KH @ 2018-07-16 6:59 UTC (permalink / raw) To: Sudip Mukherjee; +Cc: osandov, dsterba, stable On Sun, Jul 15, 2018 at 08:53:18PM +0100, Sudip Mukherjee wrote: > Hi Greg, > > On Fri, Jun 22, 2018 at 06:16:35AM +0900, gregkh@linuxfoundation.org wrote: > > > > The patch below does not apply to the 4.16-stable tree. > > If someone wants it applied there, or to any other stable or longterm > > tree, then please email the backport, including the original git commit > > id to <stable@vger.kernel.org>. > > The attached backported patch should apply to 4.16-stable tree. > > The list of enum was later sorted by: > 416a72022e43 ("btrfs: sort and group mount option definitions") and > so this commit was failing to apply. Backported by putting this new enum > at its proper place. 4.16 is long end-of-life now, there's nothing I can do for it anymore, sorry. You are responding to an email that is almost a month old :( greg k-h ^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2018-07-16 7:25 UTC | newest] Thread overview: 3+ messages (download: mbox.gz follow: Atom feed -- links below jump to the message on this page -- 2018-06-21 21:16 FAILED: patch "[PATCH] Btrfs: allow empty subvol= again" failed to apply to 4.16-stable tree gregkh 2018-07-15 19:53 ` Sudip Mukherjee 2018-07-16 6:59 ` Greg KH
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).