From: Boris Burkov Date: Fri, 2 Feb 2024 19:52:57 +0000 (-0800) Subject: btrfs: store fs_info in space_info X-Git-Tag: v6.1.162~258 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=06195ee2460b1bc06859e8941a86d52d2b40b205;p=thirdparty%2Fkernel%2Fstable.git btrfs: store fs_info in space_info [ Upstream commit 42f620aec182f62ee72e3fce41cb3353951b3508 ] 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 Reviewed-by: Johannes Thumshirn Signed-off-by: Boris Burkov Reviewed-by: David Sterba Signed-off-by: David Sterba Stable-dep-of: a11224a016d6 ("btrfs: fix memory leaks in create_space_info() error paths") Signed-off-by: Sasha Levin --- diff --git a/fs/btrfs/space-info.c b/fs/btrfs/space-info.c index bede72f3dffc3..069df2ebd1ca5 100644 --- a/fs/btrfs/space-info.c +++ b/fs/btrfs/space-info.c @@ -230,6 +230,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); diff --git a/fs/btrfs/space-info.h b/fs/btrfs/space-info.h index fea2f93674e7c..d6b34f2738b53 100644 --- a/fs/btrfs/space-info.h +++ b/fs/btrfs/space-info.h @@ -65,6 +65,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,