public inbox for linux-btrfs@vger.kernel.org
 help / color / mirror / Atom feed
From: Qu Wenruo <quwenruo.btrfs@gmx.com>
To: fdmanana@kernel.org, linux-btrfs@vger.kernel.org
Subject: Re: [PATCH] btrfs: remove btrfs_clear_extent_bits()
Date: Fri, 11 Jul 2025 18:27:35 +0930	[thread overview]
Message-ID: <037ee218-6f14-4167-8075-839826440cf0@gmx.com> (raw)
In-Reply-To: <89e52089f6d6cb7b4dad233f30bf8d8ee8ea857c.1752224006.git.fdmanana@suse.com>



在 2025/7/11 18:24, fdmanana@kernel.org 写道:
> From: Filipe Manana <fdmanana@suse.com>
> 
> It's just a simple wrapper around btrfs_clear_extent_bit() that passes a
> NULL for its last argument (a cached extent state record), plus there is
> not counter part - we have a btrfs_set_extent_bit() but we do not have a
> btrfs_set_extent_bits() (plural version). So just remove it and make all
> callers use btrfs_clear_extent_bit() directly.
> 
> Signed-off-by: Filipe Manana <fdmanana@suse.com>

Reviewed-by: Qu Wenruo <wqu@suse.com>

Thanks,
Qu

> ---
>   fs/btrfs/block-group.c           | 12 ++++++------
>   fs/btrfs/disk-io.c               |  2 +-
>   fs/btrfs/extent-io-tree.h        |  6 ------
>   fs/btrfs/inode.c                 |  4 ++--
>   fs/btrfs/qgroup.c                |  4 ++--
>   fs/btrfs/reflink.c               |  4 ++--
>   fs/btrfs/relocation.c            |  2 +-
>   fs/btrfs/tests/extent-io-tests.c |  4 ++--
>   fs/btrfs/tests/inode-tests.c     | 24 ++++++++++++------------
>   fs/btrfs/volumes.c               | 10 +++++-----
>   10 files changed, 33 insertions(+), 39 deletions(-)
> 
> diff --git a/fs/btrfs/block-group.c b/fs/btrfs/block-group.c
> index fb62a8cf03b3..999b61c97011 100644
> --- a/fs/btrfs/block-group.c
> +++ b/fs/btrfs/block-group.c
> @@ -832,8 +832,8 @@ static int load_extent_tree_free(struct btrfs_caching_control *caching_ctl)
>   
>   static inline void btrfs_free_excluded_extents(const struct btrfs_block_group *bg)
>   {
> -	btrfs_clear_extent_bits(&bg->fs_info->excluded_extents, bg->start,
> -				bg->start + bg->length - 1, EXTENT_DIRTY);
> +	btrfs_clear_extent_bit(&bg->fs_info->excluded_extents, bg->start,
> +			       bg->start + bg->length - 1, EXTENT_DIRTY, NULL);
>   }
>   
>   static noinline void caching_thread(struct btrfs_work *work)
> @@ -1436,14 +1436,14 @@ static bool clean_pinned_extents(struct btrfs_trans_handle *trans,
>   	 */
>   	mutex_lock(&fs_info->unused_bg_unpin_mutex);
>   	if (prev_trans) {
> -		ret = btrfs_clear_extent_bits(&prev_trans->pinned_extents, start, end,
> -					      EXTENT_DIRTY);
> +		ret = btrfs_clear_extent_bit(&prev_trans->pinned_extents, start, end,
> +					     EXTENT_DIRTY, NULL);
>   		if (ret)
>   			goto out;
>   	}
>   
> -	ret = btrfs_clear_extent_bits(&trans->transaction->pinned_extents, start, end,
> -				      EXTENT_DIRTY);
> +	ret = btrfs_clear_extent_bit(&trans->transaction->pinned_extents, start, end,
> +				     EXTENT_DIRTY, NULL);
>   out:
>   	mutex_unlock(&fs_info->unused_bg_unpin_mutex);
>   	if (prev_trans)
> diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
> index 44e7ae4a2e0b..9cc14ab35297 100644
> --- a/fs/btrfs/disk-io.c
> +++ b/fs/btrfs/disk-io.c
> @@ -4641,7 +4641,7 @@ static void btrfs_destroy_marked_extents(struct btrfs_fs_info *fs_info,
>   
>   	while (btrfs_find_first_extent_bit(dirty_pages, start, &start, &end,
>   					   mark, NULL)) {
> -		btrfs_clear_extent_bits(dirty_pages, start, end, mark);
> +		btrfs_clear_extent_bit(dirty_pages, start, end, mark, NULL);
>   		while (start <= end) {
>   			eb = find_extent_buffer(fs_info, start);
>   			start += fs_info->nodesize;
> diff --git a/fs/btrfs/extent-io-tree.h b/fs/btrfs/extent-io-tree.h
> index 819da07bff09..36facca37973 100644
> --- a/fs/btrfs/extent-io-tree.h
> +++ b/fs/btrfs/extent-io-tree.h
> @@ -192,12 +192,6 @@ static inline int btrfs_unlock_extent(struct extent_io_tree *tree, u64 start, u6
>   						cached, NULL);
>   }
>   
> -static inline int btrfs_clear_extent_bits(struct extent_io_tree *tree, u64 start,
> -					  u64 end, u32 bits)
> -{
> -	return btrfs_clear_extent_bit(tree, start, end, bits, NULL);
> -}
> -
>   int btrfs_set_record_extent_bits(struct extent_io_tree *tree, u64 start, u64 end,
>   				 u32 bits, struct extent_changeset *changeset);
>   int btrfs_set_extent_bit(struct extent_io_tree *tree, u64 start, u64 end,
> diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
> index 6781956197c7..7ed340cac33f 100644
> --- a/fs/btrfs/inode.c
> +++ b/fs/btrfs/inode.c
> @@ -3374,8 +3374,8 @@ bool btrfs_data_csum_ok(struct btrfs_bio *bbio, struct btrfs_device *dev,
>   	    btrfs_test_range_bit(&inode->io_tree, file_offset, end, EXTENT_NODATASUM,
>   				 NULL)) {
>   		/* Skip the range without csum for data reloc inode */
> -		btrfs_clear_extent_bits(&inode->io_tree, file_offset, end,
> -					EXTENT_NODATASUM);
> +		btrfs_clear_extent_bit(&inode->io_tree, file_offset, end,
> +				       EXTENT_NODATASUM, NULL);
>   		return true;
>   	}
>   
> diff --git a/fs/btrfs/qgroup.c b/fs/btrfs/qgroup.c
> index ae9bc7c71a34..1a5972178b3a 100644
> --- a/fs/btrfs/qgroup.c
> +++ b/fs/btrfs/qgroup.c
> @@ -4116,8 +4116,8 @@ static int qgroup_unreserve_range(struct btrfs_inode *inode,
>   		 * Now the entry is in [start, start + len), revert the
>   		 * EXTENT_QGROUP_RESERVED bit.
>   		 */
> -		clear_ret = btrfs_clear_extent_bits(&inode->io_tree, entry_start,
> -						    entry_end, EXTENT_QGROUP_RESERVED);
> +		clear_ret = btrfs_clear_extent_bit(&inode->io_tree, entry_start, entry_end,
> +						   EXTENT_QGROUP_RESERVED, NULL);
>   		if (!ret && clear_ret < 0)
>   			ret = clear_ret;
>   
> diff --git a/fs/btrfs/reflink.c b/fs/btrfs/reflink.c
> index 0197bd9160a7..ce25ab7f0e99 100644
> --- a/fs/btrfs/reflink.c
> +++ b/fs/btrfs/reflink.c
> @@ -93,8 +93,8 @@ static int copy_inline_to_page(struct btrfs_inode *inode,
>   	if (ret < 0)
>   		goto out_unlock;
>   
> -	btrfs_clear_extent_bits(&inode->io_tree, file_offset, range_end,
> -				EXTENT_DELALLOC | EXTENT_DO_ACCOUNTING | EXTENT_DEFRAG);
> +	btrfs_clear_extent_bit(&inode->io_tree, file_offset, range_end,
> +			       EXTENT_DELALLOC | EXTENT_DO_ACCOUNTING | EXTENT_DEFRAG, NULL);
>   	ret = btrfs_set_extent_delalloc(inode, file_offset, range_end, 0, NULL);
>   	if (ret)
>   		goto out_unlock;
> diff --git a/fs/btrfs/relocation.c b/fs/btrfs/relocation.c
> index 175fc3acc38b..70a9c20b2caf 100644
> --- a/fs/btrfs/relocation.c
> +++ b/fs/btrfs/relocation.c
> @@ -3651,7 +3651,7 @@ static noinline_for_stack int relocate_block_group(struct reloc_control *rc)
>   	}
>   
>   	btrfs_release_path(path);
> -	btrfs_clear_extent_bits(&rc->processed_blocks, 0, (u64)-1, EXTENT_DIRTY);
> +	btrfs_clear_extent_bit(&rc->processed_blocks, 0, (u64)-1, EXTENT_DIRTY, NULL);
>   
>   	if (trans) {
>   		btrfs_end_transaction_throttle(trans);
> diff --git a/fs/btrfs/tests/extent-io-tests.c b/fs/btrfs/tests/extent-io-tests.c
> index 660141fc67a8..b19328d077d3 100644
> --- a/fs/btrfs/tests/extent-io-tests.c
> +++ b/fs/btrfs/tests/extent-io-tests.c
> @@ -326,7 +326,7 @@ static int test_find_delalloc(u32 sectorsize, u32 nodesize)
>   out_bits:
>   	if (ret)
>   		dump_extent_io_tree(tmp);
> -	btrfs_clear_extent_bits(tmp, 0, total_dirty - 1, (unsigned)-1);
> +	btrfs_clear_extent_bit(tmp, 0, total_dirty - 1, (unsigned)-1, NULL);
>   out:
>   	if (locked_page)
>   		put_page(locked_page);
> @@ -662,7 +662,7 @@ static int test_find_first_clear_extent_bit(void)
>   out:
>   	if (ret)
>   		dump_extent_io_tree(&tree);
> -	btrfs_clear_extent_bits(&tree, 0, (u64)-1, CHUNK_TRIMMED | CHUNK_ALLOCATED);
> +	btrfs_clear_extent_bit(&tree, 0, (u64)-1, CHUNK_TRIMMED | CHUNK_ALLOCATED, NULL);
>   
>   	return ret;
>   }
> diff --git a/fs/btrfs/tests/inode-tests.c b/fs/btrfs/tests/inode-tests.c
> index a29d2c02c2c8..a4c2b7748b95 100644
> --- a/fs/btrfs/tests/inode-tests.c
> +++ b/fs/btrfs/tests/inode-tests.c
> @@ -950,10 +950,10 @@ static int test_extent_accounting(u32 sectorsize, u32 nodesize)
>   	}
>   
>   	/* [BTRFS_MAX_EXTENT_SIZE/2][sectorsize HOLE][the rest] */
> -	ret = btrfs_clear_extent_bits(&BTRFS_I(inode)->io_tree,
> -				      BTRFS_MAX_EXTENT_SIZE >> 1,
> -				      (BTRFS_MAX_EXTENT_SIZE >> 1) + sectorsize - 1,
> -				      EXTENT_DELALLOC | EXTENT_DELALLOC_NEW);
> +	ret = btrfs_clear_extent_bit(&BTRFS_I(inode)->io_tree,
> +				     BTRFS_MAX_EXTENT_SIZE >> 1,
> +				     (BTRFS_MAX_EXTENT_SIZE >> 1) + sectorsize - 1,
> +				     EXTENT_DELALLOC | EXTENT_DELALLOC_NEW, NULL);
>   	if (ret) {
>   		test_err("clear_extent_bit returned %d", ret);
>   		goto out;
> @@ -1017,10 +1017,10 @@ static int test_extent_accounting(u32 sectorsize, u32 nodesize)
>   	}
>   
>   	/* [BTRFS_MAX_EXTENT_SIZE+4k][4K HOLE][BTRFS_MAX_EXTENT_SIZE+4k] */
> -	ret = btrfs_clear_extent_bits(&BTRFS_I(inode)->io_tree,
> -				      BTRFS_MAX_EXTENT_SIZE + sectorsize,
> -				      BTRFS_MAX_EXTENT_SIZE + 2 * sectorsize - 1,
> -				      EXTENT_DELALLOC | EXTENT_DELALLOC_NEW);
> +	ret = btrfs_clear_extent_bit(&BTRFS_I(inode)->io_tree,
> +				     BTRFS_MAX_EXTENT_SIZE + sectorsize,
> +				     BTRFS_MAX_EXTENT_SIZE + 2 * sectorsize - 1,
> +				     EXTENT_DELALLOC | EXTENT_DELALLOC_NEW, NULL);
>   	if (ret) {
>   		test_err("clear_extent_bit returned %d", ret);
>   		goto out;
> @@ -1051,8 +1051,8 @@ static int test_extent_accounting(u32 sectorsize, u32 nodesize)
>   	}
>   
>   	/* Empty */
> -	ret = btrfs_clear_extent_bits(&BTRFS_I(inode)->io_tree, 0, (u64)-1,
> -				      EXTENT_DELALLOC | EXTENT_DELALLOC_NEW);
> +	ret = btrfs_clear_extent_bit(&BTRFS_I(inode)->io_tree, 0, (u64)-1,
> +				     EXTENT_DELALLOC | EXTENT_DELALLOC_NEW, NULL);
>   	if (ret) {
>   		test_err("clear_extent_bit returned %d", ret);
>   		goto out;
> @@ -1066,8 +1066,8 @@ static int test_extent_accounting(u32 sectorsize, u32 nodesize)
>   	ret = 0;
>   out:
>   	if (ret)
> -		btrfs_clear_extent_bits(&BTRFS_I(inode)->io_tree, 0, (u64)-1,
> -					EXTENT_DELALLOC | EXTENT_DELALLOC_NEW);
> +		btrfs_clear_extent_bit(&BTRFS_I(inode)->io_tree, 0, (u64)-1,
> +				       EXTENT_DELALLOC | EXTENT_DELALLOC_NEW, NULL);
>   	iput(inode);
>   	btrfs_free_dummy_root(root);
>   	btrfs_free_dummy_fs_info(fs_info);
> diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c
> index 31aecd291d6c..3e31030063cd 100644
> --- a/fs/btrfs/volumes.c
> +++ b/fs/btrfs/volumes.c
> @@ -5017,8 +5017,8 @@ int btrfs_shrink_device(struct btrfs_device *device, u64 new_size)
>   
>   	mutex_lock(&fs_info->chunk_mutex);
>   	/* Clear all state bits beyond the shrunk device size */
> -	btrfs_clear_extent_bits(&device->alloc_state, new_size, (u64)-1,
> -				CHUNK_STATE_MASK);
> +	btrfs_clear_extent_bit(&device->alloc_state, new_size, (u64)-1,
> +			       CHUNK_STATE_MASK, NULL);
>   
>   	btrfs_device_set_disk_total_bytes(device, new_size);
>   	if (list_empty(&device->post_commit_list))
> @@ -5445,9 +5445,9 @@ static void chunk_map_device_clear_bits(struct btrfs_chunk_map *map, unsigned in
>   		struct btrfs_io_stripe *stripe = &map->stripes[i];
>   		struct btrfs_device *device = stripe->dev;
>   
> -		btrfs_clear_extent_bits(&device->alloc_state, stripe->physical,
> -					stripe->physical + map->stripe_size - 1,
> -					bits | EXTENT_NOWAIT);
> +		btrfs_clear_extent_bit(&device->alloc_state, stripe->physical,
> +				       stripe->physical + map->stripe_size - 1,
> +				       bits | EXTENT_NOWAIT, NULL);
>   	}
>   }
>   


  reply	other threads:[~2025-07-11  8:57 UTC|newest]

Thread overview: 4+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2025-07-11  8:54 [PATCH] btrfs: remove btrfs_clear_extent_bits() fdmanana
2025-07-11  8:57 ` Qu Wenruo [this message]
2025-07-11  9:54 ` David Sterba
2025-07-11 10:54 ` Johannes Thumshirn

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=037ee218-6f14-4167-8075-839826440cf0@gmx.com \
    --to=quwenruo.btrfs@gmx.com \
    --cc=fdmanana@kernel.org \
    --cc=linux-btrfs@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox