summaryrefslogtreecommitdiff
path: root/tools/include
diff options
context:
space:
mode:
authorQu Wenruo <wqu@suse.com>2025-12-18 15:15:28 +1030
committerDavid Sterba <dsterba@suse.com>2026-01-06 01:22:59 +0100
commit30bcf4e824aa37d305502f52e1527c7b1eabef3d (patch)
tree5926d9097bd54b2ee2b79dbc9ed978a183a7758a /tools/include
parent8731f2c50b0b1d2b58ed5b9671ef2c4bdc2f8347 (diff)
btrfs: only enforce free space tree if v1 cache is required for bs < ps cases
[BUG] Since the introduction of btrfs bs < ps support, v1 cache was never on the plan due to its hard coded PAGE_SIZE usage, and the future plan to properly deprecate it. However for bs < ps cases, even if 'nospace_cache,clear_cache' mount option is specified, it's never respected and free space tree is always enabled: mkfs.btrfs -f -O ^bgt,fst $dev mount $dev $mnt -o clear_cache,nospace_cache umount $mnt btrfs ins dump-super $dev ... compat_ro_flags 0x3 ( FREE_SPACE_TREE | FREE_SPACE_TREE_VALID ) ... This means a different behavior compared to bs >= ps cases. [CAUSE] The forcing usage of v2 space cache is done inside btrfs_set_free_space_cache_settings(), however it never checks if we're even using space cache but always enabling v2 cache. [FIX] Instead unconditionally enable v2 cache, only forcing v2 cache if the old v1 cache is required. Now v2 space cache can be properly disabled on bs < ps cases: mkfs.btrfs -f -O ^bgt,fst $dev mount $dev $mnt -o clear_cache,nospace_cache umount $mnt btrfs ins dump-super $dev ... compat_ro_flags 0x0 ... Fixes: 9f73f1aef98b ("btrfs: force v2 space cache usage for subpage mount") Reviewed-by: Filipe Manana <fdmanana@suse.com> Signed-off-by: Qu Wenruo <wqu@suse.com> Reviewed-by: David Sterba <dsterba@suse.com> Signed-off-by: David Sterba <dsterba@suse.com>
Diffstat (limited to 'tools/include')
0 files changed, 0 insertions, 0 deletions