Re: [PATCH] btrfs: use correct type for sectorsize/nodesize/blocksize

Boris Burkov <[email protected]>
Newsgroups org.kernel.vger.linux-btrfs
Message-ID <[email protected]>
On Wed, Jun 24, 2026 at 01:42:42PM +0930, Qu Wenruo wrote:
> Btrfs' nodesize and sectorsize are all u32 values, there is no need to
> use u64 for local usage.
> 
> Furthermore some call sites also use "blocksize" or "bs" for sectorsize,
> also change them to use the minimal type u32 instead.
> 
> Since we're here, also reorder those local variables so that they won't
> cause extra holes for stack memory, and consitify the
> sectorsize/nodesize/blocksize/bs usage.
> 

Reviewed-by: Boris Burkov <[email protected]>

> Signed-off-by: Qu Wenruo <[email protected]>
> ---
>  fs/btrfs/disk-io.c | 12 ++++++------
>  fs/btrfs/fiemap.c  |  4 ++--
>  fs/btrfs/file.c    |  4 ++--
>  fs/btrfs/inode.c   |  4 ++--
>  fs/btrfs/reflink.c |  8 ++++----
>  fs/btrfs/send.c    |  2 +-
>  6 files changed, 17 insertions(+), 17 deletions(-)
> 
> diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c
> index 0a7d80da9c94..fa5922a21e51 100644
> --- a/fs/btrfs/disk-io.c
> +++ b/fs/btrfs/disk-io.c
> @@ -2390,8 +2390,8 @@ static int validate_sys_chunk_array(const struct btrfs_fs_info *fs_info,
>  int btrfs_validate_super(const struct btrfs_fs_info *fs_info,
>  			 const struct btrfs_super_block *sb, int mirror_num)
>  {
> -	u64 nodesize = btrfs_super_nodesize(sb);
> -	u64 sectorsize = btrfs_super_sectorsize(sb);
> +	const u32 nodesize = btrfs_super_nodesize(sb);
> +	const u32 sectorsize = btrfs_super_sectorsize(sb);
>  	int ret = 0;
>  	const bool ignore_flags = btrfs_test_opt(fs_info, IGNORESUPERFLAGS);
>  
> @@ -2433,24 +2433,24 @@ int btrfs_validate_super(const struct btrfs_fs_info *fs_info,
>  	 */
>  	if (unlikely(!is_power_of_2(sectorsize) || sectorsize < BTRFS_MIN_BLOCKSIZE ||
>  		     sectorsize > BTRFS_MAX_METADATA_BLOCKSIZE)) {
> -		btrfs_err(fs_info, "invalid sectorsize %llu", sectorsize);
> +		btrfs_err(fs_info, "invalid sectorsize %u", sectorsize);
>  		ret = -EINVAL;
>  	}
>  
>  	if (unlikely(!btrfs_supported_blocksize(sectorsize))) {
>  		btrfs_err(fs_info,
> -			"sectorsize %llu not yet supported for page size %lu",
> +			"sectorsize %u not yet supported for page size %lu",
>  			sectorsize, PAGE_SIZE);
>  		ret = -EINVAL;
>  	}
>  
>  	if (unlikely(!is_power_of_2(nodesize) || nodesize < sectorsize ||
>  		     nodesize > BTRFS_MAX_METADATA_BLOCKSIZE)) {
> -		btrfs_err(fs_info, "invalid nodesize %llu", nodesize);
> +		btrfs_err(fs_info, "invalid nodesize %u", nodesize);
>  		ret = -EINVAL;
>  	}
>  	if (unlikely(nodesize != le32_to_cpu(sb->__unused_leafsize))) {
> -		btrfs_err(fs_info, "invalid leafsize %u, should be %llu",
> +		btrfs_err(fs_info, "invalid leafsize %u, should be %u",
>  			  le32_to_cpu(sb->__unused_leafsize), nodesize);
>  		ret = -EINVAL;
>  	}
> diff --git a/fs/btrfs/fiemap.c b/fs/btrfs/fiemap.c
> index 6263e837093e..1da1ccea5b03 100644
> --- a/fs/btrfs/fiemap.c
> +++ b/fs/btrfs/fiemap.c
> @@ -641,9 +641,9 @@ static int extent_fiemap(struct btrfs_inode *inode,
>  	u64 prev_extent_end;
>  	u64 range_start;
>  	u64 range_end;
> -	const u64 sectorsize = inode->root->fs_info->sectorsize;
> -	bool stopped = false;
> +	const u32 sectorsize = inode->root->fs_info->sectorsize;
>  	int ret;
> +	bool stopped = false;
>  
>  	cache.entries_size = PAGE_SIZE / sizeof(struct btrfs_fiemap_entry);
>  	cache.entries = kmalloc_objs(struct btrfs_fiemap_entry,
> diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c
> index a2a2df2df786..df8f6f565070 100644
> --- a/fs/btrfs/file.c
> +++ b/fs/btrfs/file.c
> @@ -2888,8 +2888,8 @@ enum {
>  static int btrfs_zero_range_check_range_boundary(struct btrfs_inode *inode,
>  						 u64 offset)
>  {
> -	const u64 sectorsize = inode->root->fs_info->sectorsize;
>  	struct extent_map *em;
> +	const u32 sectorsize = inode->root->fs_info->sectorsize;
>  	int ret;
>  
>  	offset = round_down(offset, sectorsize);
> @@ -2916,9 +2916,9 @@ static int btrfs_zero_range(struct inode *inode,
>  	struct btrfs_fs_info *fs_info = BTRFS_I(inode)->root->fs_info;
>  	struct extent_map *em;
>  	struct extent_changeset *data_reserved = NULL;
> +	const u32 sectorsize = fs_info->sectorsize;
>  	int ret;
>  	u64 alloc_hint = 0;
> -	const u64 sectorsize = fs_info->sectorsize;
>  	const u64 orig_start = offset;
>  	const u64 orig_end = offset + len - 1;
>  	u64 alloc_start = round_down(offset, sectorsize);
> diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
> index ebd1387fcc76..ea772ec788f9 100644
> --- a/fs/btrfs/inode.c
> +++ b/fs/btrfs/inode.c
> @@ -860,11 +860,11 @@ static void compress_file_range(struct btrfs_work *work)
>  	struct btrfs_inode *inode = async_chunk->inode;
>  	struct btrfs_fs_info *fs_info = inode->root->fs_info;
>  	struct compressed_bio *cb = NULL;
> -	u64 blocksize = fs_info->sectorsize;
>  	u64 start = async_chunk->start;
>  	u64 end = async_chunk->end;
>  	u64 actual_end;
>  	u64 i_size;
> +	const u32 blocksize = fs_info->sectorsize;
>  	u32 cur_len;
>  	int ret = 0;
>  	unsigned long total_compressed = 0;
> @@ -2865,7 +2865,6 @@ static int insert_reserved_file_extent(struct btrfs_trans_handle *trans,
>  				       u64 qgroup_reserved)
>  {
>  	struct btrfs_root *root = inode->root;
> -	const u64 sectorsize = root->fs_info->sectorsize;
>  	BTRFS_PATH_AUTO_FREE(path);
>  	struct extent_buffer *leaf;
>  	struct btrfs_key ins;
> @@ -2875,6 +2874,7 @@ static int insert_reserved_file_extent(struct btrfs_trans_handle *trans,
>  	u64 num_bytes = btrfs_stack_file_extent_num_bytes(stack_fi);
>  	u64 ram_bytes = btrfs_stack_file_extent_ram_bytes(stack_fi);
>  	struct btrfs_drop_extents_args drop_args = { 0 };
> +	const u32 sectorsize = root->fs_info->sectorsize;
>  	int ret;
>  
>  	path = btrfs_alloc_path();
> diff --git a/fs/btrfs/reflink.c b/fs/btrfs/reflink.c
> index 9a49d2ecb949..5205b508127c 100644
> --- a/fs/btrfs/reflink.c
> +++ b/fs/btrfs/reflink.c
> @@ -691,7 +691,7 @@ static int btrfs_extent_same_range(struct btrfs_inode *src, u64 loff, u64 len,
>  	const u64 end = dst_loff + len - 1;
>  	struct extent_state *cached_state = NULL;
>  	struct btrfs_fs_info *fs_info = src->root->fs_info;
> -	const u64 bs = fs_info->sectorsize;
> +	const u32 bs = fs_info->sectorsize;
>  	int ret;
>  
>  	/*
> @@ -760,10 +760,10 @@ static noinline int btrfs_clone_files(struct file *file, struct file *file_src,
>  	struct inode *inode = file_inode(file);
>  	struct inode *src = file_inode(file_src);
>  	struct btrfs_fs_info *fs_info = inode_to_fs_info(inode);
> -	int ret;
>  	u64 len = olen;
> -	u64 bs = fs_info->sectorsize;
>  	u64 end;
> +	const u32 bs = fs_info->sectorsize;
> +	int ret;
>  
>  	/*
>  	 * VFS's generic_remap_file_range_prep() protects us from cloning the
> @@ -841,8 +841,8 @@ static int btrfs_remap_file_range_prep(struct file *file_in, loff_t pos_in,
>  {
>  	struct btrfs_inode *inode_in = BTRFS_I(file_inode(file_in));
>  	struct btrfs_inode *inode_out = BTRFS_I(file_inode(file_out));
> -	u64 bs = inode_out->root->fs_info->sectorsize;
>  	u64 wb_len;
> +	const u32 bs = inode_out->root->fs_info->sectorsize;
>  	int ret;
>  
>  	if (!(remap_flags & REMAP_FILE_DEDUP)) {
> diff --git a/fs/btrfs/send.c b/fs/btrfs/send.c
> index d664e470fd77..48a6667053d8 100644
> --- a/fs/btrfs/send.c
> +++ b/fs/btrfs/send.c
> @@ -6038,9 +6038,9 @@ static int send_write_or_clone(struct send_ctx *sctx,
>  			       struct clone_root *clone_root)
>  {
>  	int ret = 0;
> +	const u32 bs = sctx->send_root->fs_info->sectorsize;
>  	u64 offset = key->offset;
>  	u64 end;
> -	u64 bs = sctx->send_root->fs_info->sectorsize;
>  	struct btrfs_file_extent_item *ei;
>  	u64 disk_byte;
>  	u64 data_offset;
> -- 
> 2.54.0
>
lmpx.com only provides a reader for public news (NNTP) servers. It is not affiliated with the servers or forums shown here and is not responsible for the content of articles, which is written by their respective authors.