diff mbox series

[v3,13/13] btrfs: reclaim from sub-space space_info

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

Commit Message

Naohiro Aota April 16, 2025, 2:28 p.m. UTC
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(+)

Comments

Josef Bacik April 17, 2025, 12:49 p.m. UTC | #1
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 mbox series

Patch

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)