Message ID | 5b85a0d4bed9703a9332abbeb7bfb6802959f369.1744813603.git.naohiro.aota@wdc.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | btrfs: zoned: split out space_info for dedicated block groups | expand |
On Wed, Apr 16, 2025 at 11:28:18PM +0900, Naohiro Aota wrote: > Modify btrfs_async_{data,metadata}_reclaim() to run the reclaim process on > the sub-spaces as well. > > Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com> > Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com> > --- > fs/btrfs/space-info.c | 6 ++++++ > 1 file changed, 6 insertions(+) > > diff --git a/fs/btrfs/space-info.c b/fs/btrfs/space-info.c > index 62dc69322b80..0f543e3cb2fe 100644 > --- a/fs/btrfs/space-info.c > +++ b/fs/btrfs/space-info.c > @@ -1221,6 +1221,9 @@ static void btrfs_async_reclaim_metadata_space(struct work_struct *work) > fs_info = container_of(work, struct btrfs_fs_info, async_reclaim_work); > space_info = btrfs_find_space_info(fs_info, BTRFS_BLOCK_GROUP_METADATA); > do_async_reclaim_metadata_space(space_info); > + for (int i = 0; i < BTRFS_SPACE_INFO_SUB_GROUP_MAX; i++) > + if (space_info->sub_group[i]) > + do_async_reclaim_metadata_space(space_info->sub_group[i]); Just a formating thing, for multi-line for loops, even with a single if, it's cleaner to have the braces. I find it easier to read and less error prone. Thanks, Josef
diff --git a/fs/btrfs/space-info.c b/fs/btrfs/space-info.c index 62dc69322b80..0f543e3cb2fe 100644 --- a/fs/btrfs/space-info.c +++ b/fs/btrfs/space-info.c @@ -1221,6 +1221,9 @@ static void btrfs_async_reclaim_metadata_space(struct work_struct *work) fs_info = container_of(work, struct btrfs_fs_info, async_reclaim_work); space_info = btrfs_find_space_info(fs_info, BTRFS_BLOCK_GROUP_METADATA); do_async_reclaim_metadata_space(space_info); + for (int i = 0; i < BTRFS_SPACE_INFO_SUB_GROUP_MAX; i++) + if (space_info->sub_group[i]) + do_async_reclaim_metadata_space(space_info->sub_group[i]); } /* @@ -1449,6 +1452,9 @@ static void btrfs_async_reclaim_data_space(struct work_struct *work) fs_info = container_of(work, struct btrfs_fs_info, async_data_reclaim_work); space_info = fs_info->data_sinfo; do_async_reclaim_data_space(space_info); + for (int i = 0; i < BTRFS_SPACE_INFO_SUB_GROUP_MAX; i++) + if (space_info->sub_group[i]) + do_async_reclaim_data_space(space_info->sub_group[i]); } void btrfs_init_async_reclaim_work(struct btrfs_fs_info *fs_info)