btrfs: add and use helper to check if block group is used

commit 1693d5442c458ae8d5b0d58463b873cd879569ed upstream.

Add a helper function to determine if a block group is being used and make
use of it at btrfs_delete_unused_bgs(). This helper will also be used in
future code changes.

Reviewed-by: Johannes Thumshirn <johannes.thumshirn@wdc.com>
Reviewed-by: Josef Bacik <josef@toxicpanda.com>
Reviewed-by: Boris Burkov <boris@bur.io>
Signed-off-by: Filipe Manana <fdmanana@suse.com>
Reviewed-by: David Sterba <dsterba@suse.com>
Signed-off-by: David Sterba <dsterba@suse.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
This commit is contained in:
Filipe Manana 2024-01-25 09:53:06 +00:00 committed by Greg Kroah-Hartman
parent 3af7236d6d
commit 84b576ad44
2 changed files with 8 additions and 2 deletions

View File

@ -1375,8 +1375,7 @@ void btrfs_delete_unused_bgs(struct btrfs_fs_info *fs_info)
} }
spin_lock(&block_group->lock); spin_lock(&block_group->lock);
if (block_group->reserved || block_group->pinned || if (btrfs_is_block_group_used(block_group) || block_group->ro ||
block_group->used || block_group->ro ||
list_is_singular(&block_group->list)) { list_is_singular(&block_group->list)) {
/* /*
* We want to bail if we made new allocations or have * We want to bail if we made new allocations or have

View File

@ -241,6 +241,13 @@ static inline u64 btrfs_block_group_end(struct btrfs_block_group *block_group)
return (block_group->start + block_group->length); return (block_group->start + block_group->length);
} }
static inline bool btrfs_is_block_group_used(const struct btrfs_block_group *bg)
{
lockdep_assert_held(&bg->lock);
return (bg->used > 0 || bg->reserved > 0 || bg->pinned > 0);
}
static inline bool btrfs_is_block_group_data_only( static inline bool btrfs_is_block_group_data_only(
struct btrfs_block_group *block_group) struct btrfs_block_group *block_group)
{ {