• Josef Bacik's avatar
    btrfs: move space cache settings into open_ctree · a6a8f22a
    Josef Bacik authored
    Currently we pre-load the space cache settings in btrfs_parse_options,
    however when we switch to the new mount API the mount option parsing
    will happen before we have the super block loaded.  Add a helper to set
    the appropriate options based on the fs settings, this will allow us to
    have consistent free space cache settings.
    
    This also folds in the space cache related decisions we make for subpage
    sectorsize support, so all of this is done in one place.
    
    Since this was being called by parse options it looks like we're
    changing the behavior of remount, but in fact we aren't.  The
    pre-loading of the free space cache settings is done because we want to
    handle the case of users not using any space_cache options, we'll derive
    the appropriate mount option based on the on disk state.  On remount
    this wouldn't reset anything as we'll have cleared the v1 cache
    generation if we mounted -o nospace_cache.  Similarly it's impossible to
    turn off the free space tree without specifically saying -o
    nospace_cache,clear_cache, which will delete the free space tree and
    clear the compat_ro option.  Again in this case calling this code in
    remount wouldn't result in any change.
    Reviewed-by: default avatarJohannes Thumshirn <johannes.thumshirn@wdc.com>
    Reviewed-by: default avatarAnand Jain <anand.jain@oracle.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>
    Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
    a6a8f22a
super.c 68.8 KB