• Omar Sandoval's avatar
    Btrfs: allow empty subvol= again · 37becec9
    Omar Sandoval authored
    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: 312c89fb ("btrfs: cleanup btrfs_mount() using btrfs_mount_root()")
    CC: stable@vger.kernel.org # 4.16+
    Signed-off-by: default avatarOmar Sandoval <osandov@fb.com>
    Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    37becec9
super.c 65.2 KB