]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
btrfs: store fs_info in space_info
authorBoris Burkov <boris@bur.io>
Fri, 2 Feb 2024 19:52:57 +0000 (11:52 -0800)
committerDavid Sterba <dsterba@suse.com>
Thu, 11 Jul 2024 13:33:27 +0000 (15:33 +0200)
This is handy when computing space_info dynamic reclaim thresholds where
we do not have access to a block group. We could add it to the various
functions as a parameter, but it seems reasonable for space_info to have
an fs_info pointer.

Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.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/space-info.c
fs/btrfs/space-info.h

index 85ff44a742239199f4124a6b3c8dde0152c8426a..3608c1f950f0e5571c1ea39ff7f7677fa2c93988 100644 (file)
@@ -232,6 +232,7 @@ static int create_space_info(struct btrfs_fs_info *info, u64 flags)
        if (!space_info)
                return -ENOMEM;
 
+       space_info->fs_info = info;
        for (i = 0; i < BTRFS_NR_RAID_TYPES; i++)
                INIT_LIST_HEAD(&space_info->block_groups[i]);
        init_rwsem(&space_info->groups_sem);
index 98ea35ae60fe0eeb47439d90a11618a24ee7d166..25edfd453b27a3718e04353d237acc004d2b0f54 100644 (file)
@@ -94,6 +94,7 @@ enum btrfs_flush_state {
 };
 
 struct btrfs_space_info {
+       struct btrfs_fs_info *fs_info;
        spinlock_t lock;
 
        u64 total_bytes;        /* total bytes in the space,