btrfs: move out now unused BG from the reclaim list
authorNaohiro Aota <naota@elisp.net>
Tue, 6 Jun 2023 05:36:34 +0000 (14:36 +0900)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Wed, 23 Aug 2023 15:52:28 +0000 (17:52 +0200)
commit01eca70ef8cf499d0cb6d1bbd691558e7792cf17
treed2e8facc13ad938051baff9532c78b855e6e4aaf
parent485ec8f8e1d8ae12aa1daa5ad345ba8940ad2db7
btrfs: move out now unused BG from the reclaim list

[ Upstream commit a9f189716cf15913c453299d72f69c51a9b0f86b ]

An unused block group is easy to remove to free up space and should be
reclaimed fast. Such block group can often already be a target of the
reclaim process. As we check list_empty(&bg->bg_list), we keep it in the
reclaim list. That block group is never reclaimed until the file system
is filled e.g. up to 75%.

Instead, we can move unused block group to the unused list and delete it
fast.

Fixes: 18bb8bbf13c1 ("btrfs: zoned: automatically reclaim zones")
CC: stable@vger.kernel.org # 5.15+
Reviewed-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Signed-off-by: Naohiro Aota <naohiro.aota@wdc.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/btrfs/block-group.c