]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
btrfs: create btrfs_reclaim_block_groups()
authorJohannes Thumshirn <johannes.thumshirn@wdc.com>
Thu, 5 Mar 2026 10:06:43 +0000 (11:06 +0100)
committerDavid Sterba <dsterba@suse.com>
Tue, 7 Apr 2026 16:56:01 +0000 (18:56 +0200)
Create a function btrfs_reclaim_block_groups() that gets called from the
block-group reclaim worker.

This allows creating synchronous block_group reclaim later on.

Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Reviewed-by: Boris Burkov <boris@bur.io>
Signed-off-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
fs/btrfs/block-group.c

index 4df076bd93f5eaa4f3b93af06ff3c706a6128671..72fc9b3b6dc0b0eba444ca24272683aa22d2b0eb 100644 (file)
@@ -2040,10 +2040,8 @@ static int btrfs_reclaim_block_group(struct btrfs_block_group *bg)
        return ret;
 }
 
-void btrfs_reclaim_bgs_work(struct work_struct *work)
+static void btrfs_reclaim_block_groups(struct btrfs_fs_info *fs_info)
 {
-       struct btrfs_fs_info *fs_info =
-               container_of(work, struct btrfs_fs_info, reclaim_bgs_work);
        struct btrfs_block_group *bg;
        struct btrfs_space_info *space_info;
        LIST_HEAD(retry_list);
@@ -2111,6 +2109,14 @@ end:
        btrfs_exclop_finish(fs_info);
 }
 
+void btrfs_reclaim_bgs_work(struct work_struct *work)
+{
+       struct btrfs_fs_info *fs_info =
+               container_of(work, struct btrfs_fs_info, reclaim_bgs_work);
+
+       btrfs_reclaim_block_groups(fs_info);
+}
+
 void btrfs_reclaim_bgs(struct btrfs_fs_info *fs_info)
 {
        btrfs_reclaim_sweep(fs_info);