• Josef Bacik's avatar
    btrfs: add parse_param callback for the new mount API · 17b36120
    Josef Bacik authored
    
    
    The parse_param callback handles one parameter at a time, take our
    existing mount option parsing loop and adjust it to handle one parameter
    at a time, and tie it into the fs_context_operations.
    
    Create a btrfs_fs_context object that will store the various mount
    properties, we'll house this in fc->fs_private.  This is necessary to
    separate because remounting will use ->reconfigure, and we'll get a new
    copy of the parsed parameters, so we can no longer directly mess with
    the fs_info in this stage.
    
    In the future we'll add this to the btrfs_fs_info and update the users
    to use the new context object instead.
    
    There's a change how the option device= is processed. Previously all
    mount options were parsed in one go under uuid_mutex and the devices
    opened. This prevented a concurrent scan to happen during mount. Now we
    could see a device scan happen (e.g. by udev) but this should not affect
    the end result, mount will either see the populated fs_devices or will
    scan the device by itself.
    
    Alternatively we could save all the device paths first and then process
    them in one go as before but this does not seem to be necessary.
    Reviewed-by: default avatarJohannes Thumshirn <johannes.thumshirn@wdc.com>
    Acked-by: default avatarChristian Brauner <brauner@kernel.org>
    Signed-off-by: default avatarJosef Bacik <josef@toxicpanda.com>
    Reviewed-by: default avatarDavid Sterba <dsterba@suse.com>
    [ add note about device scanning ]
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    17b36120
super.c 83.5 KB