btrfs: skip space_cache v1 setup when not using it
authorBoris Burkov <boris@bur.io>
Wed, 18 Nov 2020 23:06:26 +0000 (15:06 -0800)
committerDavid Sterba <dsterba@suse.com>
Wed, 9 Dec 2020 18:16:09 +0000 (19:16 +0100)
If we are not using space cache v1, we should not create the free space
object or free space inodes. This comes up when we delete the existing
free space objects/inodes when migrating to v2, only to see them get
recreated for every dirtied block group.

Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Signed-off-by: Boris Burkov <boris@bur.io>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/block-group.c

index fbc74bb..52f2198 100644 (file)
@@ -2340,6 +2340,9 @@ static int cache_save_setup(struct btrfs_block_group *block_group,
        int retries = 0;
        int ret = 0;
 
+       if (!btrfs_test_opt(fs_info, SPACE_CACHE))
+               return 0;
+
        /*
         * If this block group is smaller than 100 megs don't bother caching the
         * block group.