Re: [PATCH 3/3] btrfs: using enum to replace macro

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Sat, Oct 05, 2019 at 01:17:36PM +0800, Chengguang Xu wrote:
> using enum to replace macro definition for extent
> types.
> 
> Signed-off-by: Chengguang Xu <cgxu519@xxxxxxxxxxxx>
> ---
>  fs/btrfs/tree-checker.c         |  4 ++--
>  include/uapi/linux/btrfs_tree.h | 10 ++++++----
>  2 files changed, 8 insertions(+), 6 deletions(-)
> 
> diff --git a/fs/btrfs/tree-checker.c b/fs/btrfs/tree-checker.c
> index 2d91c34bbf63..9b0c5fdbe04e 100644
> --- a/fs/btrfs/tree-checker.c
> +++ b/fs/btrfs/tree-checker.c
> @@ -156,11 +156,11 @@ static int check_extent_data_item(struct extent_buffer *leaf,
>  
>  	fi = btrfs_item_ptr(leaf, slot, struct btrfs_file_extent_item);
>  
> -	if (btrfs_file_extent_type(leaf, fi) > BTRFS_FILE_EXTENT_TYPES) {
> +	if (btrfs_file_extent_type(leaf, fi) >= BTRFS_FILE_EXTENT_TYPES) {
>  		file_extent_err(leaf, slot,
>  		"invalid type for file extent, have %u expect range [0, %u]",
>  			btrfs_file_extent_type(leaf, fi),
> -			BTRFS_FILE_EXTENT_TYPES);
> +			BTRFS_FILE_EXTENT_TYPES - 1);
>  		return -EUCLEAN;
>  	}
>  
> diff --git a/include/uapi/linux/btrfs_tree.h b/include/uapi/linux/btrfs_tree.h
> index b65c7ee75bc7..34bd09ffc71d 100644
> --- a/include/uapi/linux/btrfs_tree.h
> +++ b/include/uapi/linux/btrfs_tree.h
> @@ -737,10 +737,12 @@ struct btrfs_balance_item {
>  	__le64 unused[4];
>  } __attribute__ ((__packed__));
>  
> -#define BTRFS_FILE_EXTENT_INLINE 0
> -#define BTRFS_FILE_EXTENT_REG 1
> -#define BTRFS_FILE_EXTENT_PREALLOC 2
> -#define BTRFS_FILE_EXTENT_TYPES	2
> +enum {
> +	BTRFS_FILE_EXTENT_INLINE,
> +	BTRFS_FILE_EXTENT_REG,
> +	BTRFS_FILE_EXTENT_PREALLOC,
> +	BTRFS_FILE_EXTENT_TYPES
> +};

As stated before, using enums is fine and for on-disk structure,s the
explicit value should be specified as well.

>  struct btrfs_file_extent_item {
>  	/*
> -- 
> 2.21.0
> 
> 
> 



[Index of Archives]     [Linux Filesystem Development]     [Linux NFS]     [Linux NILFS]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux