Re: [PATCH] xfs: ASSERT should always evaluate its parameter

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

 



On Fri, Sep 01, 2017 at 08:57:33AM -0700, Darrick J. Wong wrote:
> Ensure that ASSERT evalulates its expression argument so that we don't
> get a ton of compiler warnings in non-warn non-debug mode.  Fix up
> everything that breaks as a result.
> 
> Signed-off-by: Darrick J. Wong <darrick.wong@xxxxxxxxxx>
> ---
>  fs/xfs/libxfs/xfs_bmap.c      |    2 +-
>  fs/xfs/libxfs/xfs_dir2_node.c |    2 --
>  fs/xfs/xfs_inode.c            |    8 ++++++++
>  fs/xfs/xfs_linux.h            |    3 ++-
>  fs/xfs/xfs_trans.c            |    2 ++
>  5 files changed, 13 insertions(+), 4 deletions(-)
> 
> diff --git a/fs/xfs/libxfs/xfs_bmap.c b/fs/xfs/libxfs/xfs_bmap.c
> index 9558f5e..883a626 100644
> --- a/fs/xfs/libxfs/xfs_bmap.c
> +++ b/fs/xfs/libxfs/xfs_bmap.c
> @@ -579,7 +579,7 @@ xfs_bmap_validate_ret(
>  
>  #else
>  #define xfs_bmap_check_leaf_extents(cur, ip, whichfork)		do { } while (0)
> -#define	xfs_bmap_validate_ret(bno,len,flags,mval,onmap,nmap)
> +#define	xfs_bmap_validate_ret(bno,len,flags,mval,onmap,nmap)	((void)0)
>  #endif /* DEBUG */
>  
>  /*
> diff --git a/fs/xfs/libxfs/xfs_dir2_node.c b/fs/xfs/libxfs/xfs_dir2_node.c
> index 682e2bf..e57a80b 100644
> --- a/fs/xfs/libxfs/xfs_dir2_node.c
> +++ b/fs/xfs/libxfs/xfs_dir2_node.c
> @@ -1005,9 +1005,7 @@ xfs_dir2_leafn_rebalance(
>  	xfs_dir2_leaf_t		*leaf1;		/* first leaf structure */
>  	xfs_dir2_leaf_t		*leaf2;		/* second leaf structure */
>  	int			mid;		/* midpoint leaf index */
> -#if defined(DEBUG) || defined(XFS_WARN)
>  	int			oldstale;	/* old count of stale leaves */
> -#endif
>  	int			oldsum;		/* old total leaf count */
>  	int			swap;		/* swapped leaf blocks */
>  	struct xfs_dir2_leaf_entry *ents1;
> diff --git a/fs/xfs/xfs_inode.c b/fs/xfs/xfs_inode.c
> index 5599dda..0eaf1f1 100644
> --- a/fs/xfs/xfs_inode.c
> +++ b/fs/xfs/xfs_inode.c
> @@ -382,6 +382,14 @@ xfs_isilocked(
>  	ASSERT(0);
>  	return 0;
>  }
> +#else
> +int
> +xfs_isilocked(
> +	xfs_inode_t		*ip,
> +	uint			lock_flags)
> +{
> +	return 0;
> +}

Bah, this doesn't work, never mind.  Kill this whole patch.

/me goes back for another cup of coffee.

--D

>  #endif
>  
>  #ifdef DEBUG
> diff --git a/fs/xfs/xfs_linux.h b/fs/xfs/xfs_linux.h
> index c19c999..7c69f08 100644
> --- a/fs/xfs/xfs_linux.h
> +++ b/fs/xfs/xfs_linux.h
> @@ -260,7 +260,8 @@ static inline uint64_t howmany_64(uint64_t x, uint32_t y)
>  
>  #else	/* !DEBUG && !XFS_WARN */
>  
> -#define ASSERT(expr)	((void)0)
> +#define ASSERT(expr)	\
> +	(likely(expr) ? (void)0 : (void)0)
>  
>  #ifndef STATIC
>  # define STATIC static noinline
> diff --git a/fs/xfs/xfs_trans.c b/fs/xfs/xfs_trans.c
> index a87f657..45e30ba 100644
> --- a/fs/xfs/xfs_trans.c
> +++ b/fs/xfs/xfs_trans.c
> @@ -421,9 +421,11 @@ xfs_trans_apply_sb_deltas(
>  	/*
>  	 * Check that superblock mods match the mods made to AGF counters.
>  	 */
> +#if defined(DEBUG) || defined(XFS_WARN)
>  	ASSERT((tp->t_fdblocks_delta + tp->t_res_fdblocks_delta) ==
>  	       (tp->t_ag_freeblks_delta + tp->t_ag_flist_delta +
>  		tp->t_ag_btree_delta));
> +#endif
>  
>  	/*
>  	 * Only update the superblock counters if we are logging them
> --
> To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html
--
To unsubscribe from this list: send the line "unsubscribe linux-xfs" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html



[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