Skip to content

Commit

Permalink
btrfs: convert btrfs_block_group::seq_zone to runtime flag
Browse files Browse the repository at this point in the history
In zoned mode the sequential status of zone can be also tracked in the
runtime flags of block group.

Reviewed-by: Anand Jain <anand.jain@oracle.com>
Signed-off-by: David Sterba <dsterba@suse.com>
  • Loading branch information
kdave committed Dec 5, 2022
1 parent 0d7764f commit 961f5b8
Show file tree
Hide file tree
Showing 2 changed files with 6 additions and 6 deletions.
5 changes: 2 additions & 3 deletions fs/btrfs/block-group.h
Original file line number Diff line number Diff line change
Expand Up @@ -57,6 +57,8 @@ enum btrfs_block_group_flags {
BLOCK_GROUP_FLAG_ZONED_DATA_RELOC,
/* Does the block group need to be added to the free space tree? */
BLOCK_GROUP_FLAG_NEEDS_FREE_SPACE,
/* Indicate that the block group is placed on a sequential zone */
BLOCK_GROUP_FLAG_SEQUENTIAL_ZONE,
};

enum btrfs_caching_type {
Expand Down Expand Up @@ -210,9 +212,6 @@ struct btrfs_block_group {
/* Lock for free space tree operations. */
struct mutex free_space_lock;

/* Flag indicating this block group is placed on a sequential zone */
bool seq_zone;

/*
* Number of extents in this block group used for swap files.
* All accesses protected by the spinlock 'lock'.
Expand Down
7 changes: 4 additions & 3 deletions fs/btrfs/zoned.c
Original file line number Diff line number Diff line change
Expand Up @@ -1437,7 +1437,7 @@ int btrfs_load_block_group_zone_info(struct btrfs_block_group *cache, bool new)
}

if (num_sequential > 0)
cache->seq_zone = true;
set_bit(BLOCK_GROUP_FLAG_SEQUENTIAL_ZONE, &cache->runtime_flags);

if (num_conventional > 0) {
/* Zone capacity is always zone size in emulation */
Expand Down Expand Up @@ -1649,7 +1649,7 @@ bool btrfs_use_zone_append(struct btrfs_inode *inode, u64 start)
if (!cache)
return false;

ret = cache->seq_zone;
ret = !!test_bit(BLOCK_GROUP_FLAG_SEQUENTIAL_ZONE, &cache->runtime_flags);
btrfs_put_block_group(cache);

return ret;
Expand Down Expand Up @@ -2154,7 +2154,8 @@ static void btrfs_zone_finish_endio_workfn(struct work_struct *work)
void btrfs_schedule_zone_finish_bg(struct btrfs_block_group *bg,
struct extent_buffer *eb)
{
if (!bg->seq_zone || eb->start + eb->len * 2 <= bg->start + bg->zone_capacity)
if (!test_bit(BLOCK_GROUP_FLAG_SEQUENTIAL_ZONE, &bg->runtime_flags) ||
eb->start + eb->len * 2 <= bg->start + bg->zone_capacity)
return;

if (WARN_ON(bg->zone_finish_work.func == btrfs_zone_finish_endio_workfn)) {
Expand Down

0 comments on commit 961f5b8

Please sign in to comment.