Commit 7e271809 authored by Naohiro Aota's avatar Naohiro Aota Committed by David Sterba

btrfs: reinsert BGs failed to reclaim

The reclaim process can temporarily fail. For example, if the space is
getting tight, it fails to make the block group read-only. If there are no
further writes on that block group, the block group will never get back to
the reclaim list, and the BG never gets reclaimed. In a certain workload,
we can leave many such block groups never reclaimed.

So, let's get it back to the list and give it a chance to be reclaimed.

Fixes: 18bb8bbf ("btrfs: zoned: automatically reclaim zones")
CC: stable@vger.kernel.org # 5.15+
Signed-off-by: default avatarNaohiro Aota <naohiro.aota@wdc.com>
Signed-off-by: default avatarDavid Sterba <dsterba@suse.com>
parent 93463ff7
...@@ -1833,6 +1833,8 @@ void btrfs_reclaim_bgs_work(struct work_struct *work) ...@@ -1833,6 +1833,8 @@ void btrfs_reclaim_bgs_work(struct work_struct *work)
} }
next: next:
if (ret)
btrfs_mark_bg_to_reclaim(bg);
btrfs_put_block_group(bg); btrfs_put_block_group(bg);
mutex_unlock(&fs_info->reclaim_bgs_lock); mutex_unlock(&fs_info->reclaim_bgs_lock);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment