Re: [PATCH 13/17 v2] xfs: convert inode lock flags to unsigned.

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

 



On Thu, 2022-04-21 at 10:44 +1000, Dave Chinner wrote:
> From: Dave Chinner <dchinner@xxxxxxxxxx>
> 
> 5.18 w/ std=gnu11 compiled with gcc-5 wants flags stored in unsigned
> fields to be unsigned.
> 
> Signed-off-by: Dave Chinner <dchinner@xxxxxxxxxx>
> ---
> V2:
> - convert the missed ILOCK bit values and masks to unsigned.
> 
Looks ok now
Reviewed-by: Allison Henderson <allison.henderson@xxxxxxxxxx>

>  fs/xfs/xfs_file.c  | 12 ++++++------
>  fs/xfs/xfs_inode.c | 21 ++++++++++++---------
>  fs/xfs/xfs_inode.h | 24 ++++++++++++------------
>  3 files changed, 30 insertions(+), 27 deletions(-)
> 
> diff --git a/fs/xfs/xfs_file.c b/fs/xfs/xfs_file.c
> index 5bddb1e9e0b3..f3e878408747 100644
> --- a/fs/xfs/xfs_file.c
> +++ b/fs/xfs/xfs_file.c
> @@ -310,7 +310,7 @@ STATIC ssize_t
>  xfs_file_write_checks(
>  	struct kiocb		*iocb,
>  	struct iov_iter		*from,
> -	int			*iolock)
> +	unsigned int		*iolock)
>  {
>  	struct file		*file = iocb->ki_filp;
>  	struct inode		*inode = file->f_mapping->host;
> @@ -513,7 +513,7 @@ xfs_file_dio_write_aligned(
>  	struct kiocb		*iocb,
>  	struct iov_iter		*from)
>  {
> -	int			iolock = XFS_IOLOCK_SHARED;
> +	unsigned int		iolock = XFS_IOLOCK_SHARED;
>  	ssize_t			ret;
>  
>  	ret = xfs_ilock_iocb(iocb, iolock);
> @@ -566,7 +566,7 @@ xfs_file_dio_write_unaligned(
>  {
>  	size_t			isize = i_size_read(VFS_I(ip));
>  	size_t			count = iov_iter_count(from);
> -	int			iolock = XFS_IOLOCK_SHARED;
> +	unsigned int		iolock = XFS_IOLOCK_SHARED;
>  	unsigned int		flags = IOMAP_DIO_OVERWRITE_ONLY;
>  	ssize_t			ret;
>  
> @@ -655,7 +655,7 @@ xfs_file_dax_write(
>  {
>  	struct inode		*inode = iocb->ki_filp->f_mapping-
> >host;
>  	struct xfs_inode	*ip = XFS_I(inode);
> -	int			iolock = XFS_IOLOCK_EXCL;
> +	unsigned int		iolock = XFS_IOLOCK_EXCL;
>  	ssize_t			ret, error = 0;
>  	loff_t			pos;
>  
> @@ -700,7 +700,7 @@ xfs_file_buffered_write(
>  	struct xfs_inode	*ip = XFS_I(inode);
>  	ssize_t			ret;
>  	bool			cleared_space = false;
> -	int			iolock;
> +	unsigned int		iolock;
>  
>  	if (iocb->ki_flags & IOCB_NOWAIT)
>  		return -EOPNOTSUPP;
> @@ -1181,7 +1181,7 @@ xfs_dir_open(
>  	struct file	*file)
>  {
>  	struct xfs_inode *ip = XFS_I(inode);
> -	int		mode;
> +	unsigned int	mode;
>  	int		error;
>  
>  	error = xfs_file_open(inode, file);
> diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c
> index 9de6205fe134..5ea460f62201 100644
> --- a/fs/xfs/xfs_inode.c
> +++ b/fs/xfs/xfs_inode.c
> @@ -416,10 +416,12 @@ xfs_lockdep_subclass_ok(
>   * parent locking. Care must be taken to ensure we don't overrun the
> subclass
>   * storage fields in the class mask we build.
>   */
> -static inline int
> -xfs_lock_inumorder(int lock_mode, int subclass)
> +static inline uint
> +xfs_lock_inumorder(
> +	uint	lock_mode,
> +	uint	subclass)
>  {
> -	int	class = 0;
> +	uint	class = 0;
>  
>  	ASSERT(!(lock_mode & (XFS_ILOCK_PARENT | XFS_ILOCK_RTBITMAP |
>  			      XFS_ILOCK_RTSUM)));
> @@ -464,7 +466,10 @@ xfs_lock_inodes(
>  	int			inodes,
>  	uint			lock_mode)
>  {
> -	int			attempts = 0, i, j, try_lock;
> +	int			attempts = 0;
> +	uint			i;
> +	int			j;
> +	bool			try_lock;
>  	struct xfs_log_item	*lp;
>  
>  	/*
> @@ -489,9 +494,9 @@ xfs_lock_inodes(
>  	} else if (lock_mode & XFS_MMAPLOCK_EXCL)
>  		ASSERT(!(lock_mode & XFS_ILOCK_EXCL));
>  
> -	try_lock = 0;
> -	i = 0;
>  again:
> +	try_lock = false;
> +	i = 0;
>  	for (; i < inodes; i++) {
>  		ASSERT(ips[i]);
>  
> @@ -506,7 +511,7 @@ xfs_lock_inodes(
>  			for (j = (i - 1); j >= 0 && !try_lock; j--) {
>  				lp = &ips[j]->i_itemp->ili_item;
>  				if (lp && test_bit(XFS_LI_IN_AIL, &lp-
> >li_flags))
> -					try_lock++;
> +					try_lock = true;
>  			}
>  		}
>  
> @@ -546,8 +551,6 @@ xfs_lock_inodes(
>  		if ((attempts % 5) == 0) {
>  			delay(1); /* Don't just spin the CPU */
>  		}
> -		i = 0;
> -		try_lock = 0;
>  		goto again;
>  	}
>  }
> diff --git a/fs/xfs/xfs_inode.h b/fs/xfs/xfs_inode.h
> index 740ab13d1aa2..b67ab9f10cf9 100644
> --- a/fs/xfs/xfs_inode.h
> +++ b/fs/xfs/xfs_inode.h
> @@ -278,12 +278,12 @@ static inline bool xfs_inode_has_bigtime(struct
> xfs_inode *ip)
>   * Bit ranges:	1<<1  - 1<<16-1 -- iolock/ilock modes
> (bitfield)
>   *		1<<16 - 1<<32-1 -- lockdep annotation (integers)
>   */
> -#define	XFS_IOLOCK_EXCL		(1<<0)
> -#define	XFS_IOLOCK_SHARED	(1<<1)
> -#define	XFS_ILOCK_EXCL		(1<<2)
> -#define	XFS_ILOCK_SHARED	(1<<3)
> -#define	XFS_MMAPLOCK_EXCL	(1<<4)
> -#define	XFS_MMAPLOCK_SHARED	(1<<5)
> +#define	XFS_IOLOCK_EXCL		(1u << 0)
> +#define	XFS_IOLOCK_SHARED	(1u << 1)
> +#define	XFS_ILOCK_EXCL		(1u << 2)
> +#define	XFS_ILOCK_SHARED	(1u << 3)
> +#define	XFS_MMAPLOCK_EXCL	(1u << 4)
> +#define	XFS_MMAPLOCK_SHARED	(1u << 5)
>  
>  #define XFS_LOCK_MASK		(XFS_IOLOCK_EXCL |
> XFS_IOLOCK_SHARED \
>  				| XFS_ILOCK_EXCL | XFS_ILOCK_SHARED \
> @@ -350,19 +350,19 @@ static inline bool xfs_inode_has_bigtime(struct
> xfs_inode *ip)
>   */
>  #define XFS_IOLOCK_SHIFT		16
>  #define XFS_IOLOCK_MAX_SUBCLASS		3
> -#define XFS_IOLOCK_DEP_MASK		0x000f0000
> +#define XFS_IOLOCK_DEP_MASK		0x000f0000u
>  
>  #define XFS_MMAPLOCK_SHIFT		20
>  #define XFS_MMAPLOCK_NUMORDER		0
>  #define XFS_MMAPLOCK_MAX_SUBCLASS	3
> -#define XFS_MMAPLOCK_DEP_MASK		0x00f00000
> +#define XFS_MMAPLOCK_DEP_MASK		0x00f00000u
>  
>  #define XFS_ILOCK_SHIFT			24
> -#define XFS_ILOCK_PARENT_VAL		5
> +#define XFS_ILOCK_PARENT_VAL		5u
>  #define XFS_ILOCK_MAX_SUBCLASS		(XFS_ILOCK_PARENT_VAL -
> 1)
> -#define XFS_ILOCK_RTBITMAP_VAL		6
> -#define XFS_ILOCK_RTSUM_VAL		7
> -#define XFS_ILOCK_DEP_MASK		0xff000000
> +#define XFS_ILOCK_RTBITMAP_VAL		6u
> +#define XFS_ILOCK_RTSUM_VAL		7u
> +#define XFS_ILOCK_DEP_MASK		0xff000000u
>  #define	XFS_ILOCK_PARENT		(XFS_ILOCK_PARENT_VAL <<
> XFS_ILOCK_SHIFT)
>  #define	XFS_ILOCK_RTBITMAP		(XFS_ILOCK_RTBITMAP_V
> AL << XFS_ILOCK_SHIFT)
>  #define	XFS_ILOCK_RTSUM			(XFS_ILOCK_RTSUM_VAL
> << XFS_ILOCK_SHIFT)




[Index of Archives]     [XFS Filesystem Development (older mail)]     [Linux Filesystem Development]     [Linux Audio Users]     [Yosemite Trails]     [Linux Kernel]     [Linux RAID]     [Linux SCSI]


  Powered by Linux