[v2] xfs: avoid harmless gcc-7 warnings

Message ID 20170511150450.2573345-1-arnd@arndb.de
State Accepted
Commit 0cbe48cc5814ae26e4058c5d666914c86a4a6b5d
Headers show

Commit Message

Arnd Bergmann May 11, 2017, 3:04 p.m.
gcc-7 flags the use of integer math inside of a condition
as a potential bug:

fs/xfs/xfs_bmap_util.c: In function 'xfs_swap_extents_check_format':
fs/xfs/xfs_bmap_util.c:1619:8: error: '<<' in boolean context, did you mean '<' ? [-Werror=int-in-bool-context]
fs/xfs/xfs_bmap_util.c:1629:8: error: '<<' in boolean context, did you mean '<' ? [-Werror=int-in-bool-context]

There is already a helper function for testing the di_forkoff
field for zero, so let's use that instead to shut up the warning.

Signed-off-by: Arnd Bergmann <arnd@arndb.de>

---
 fs/xfs/xfs_bmap_util.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

-- 
2.9.0

Comments

Christoph Hellwig May 11, 2017, 3:06 p.m. | #1
Yes, this looks much better:

Reviewed-by: Christoph Hellwig <hch@lst.de>
Darrick J. Wong May 11, 2017, 3:17 p.m. | #2
On Thu, May 11, 2017 at 05:04:33PM +0200, Arnd Bergmann wrote:
> gcc-7 flags the use of integer math inside of a condition

> as a potential bug:

> 

> fs/xfs/xfs_bmap_util.c: In function 'xfs_swap_extents_check_format':

> fs/xfs/xfs_bmap_util.c:1619:8: error: '<<' in boolean context, did you mean '<' ? [-Werror=int-in-bool-context]

> fs/xfs/xfs_bmap_util.c:1629:8: error: '<<' in boolean context, did you mean '<' ? [-Werror=int-in-bool-context]

> 

> There is already a helper function for testing the di_forkoff

> field for zero, so let's use that instead to shut up the warning.

> 

> Signed-off-by: Arnd Bergmann <arnd@arndb.de>


Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>


--D

> ---

>  fs/xfs/xfs_bmap_util.c | 4 ++--

>  1 file changed, 2 insertions(+), 2 deletions(-)

> 

> diff --git a/fs/xfs/xfs_bmap_util.c b/fs/xfs/xfs_bmap_util.c

> index 2b954308a1d6..da4867567647 100644

> --- a/fs/xfs/xfs_bmap_util.c

> +++ b/fs/xfs/xfs_bmap_util.c

> @@ -1613,7 +1613,7 @@ xfs_swap_extents_check_format(

>  	 * extent format...

>  	 */

>  	if (tip->i_d.di_format == XFS_DINODE_FMT_BTREE) {

> -		if (XFS_IFORK_BOFF(ip) &&

> +		if (XFS_IFORK_Q(ip) &&

>  		    XFS_BMAP_BMDR_SPACE(tip->i_df.if_broot) > XFS_IFORK_BOFF(ip))

>  			return -EINVAL;

>  		if (XFS_IFORK_NEXTENTS(tip, XFS_DATA_FORK) <=

> @@ -1623,7 +1623,7 @@ xfs_swap_extents_check_format(

>  

>  	/* Reciprocal target->temp btree format checks */

>  	if (ip->i_d.di_format == XFS_DINODE_FMT_BTREE) {

> -		if (XFS_IFORK_BOFF(tip) &&

> +		if (XFS_IFORK_Q(tip) &&

>  		    XFS_BMAP_BMDR_SPACE(ip->i_df.if_broot) > XFS_IFORK_BOFF(tip))

>  			return -EINVAL;

>  		if (XFS_IFORK_NEXTENTS(ip, XFS_DATA_FORK) <=

> -- 

> 2.9.0

> 

> --

> To unsubscribe from this list: send the line "unsubscribe linux-xfs" in

> the body of a message to majordomo@vger.kernel.org

> More majordomo info at  http://vger.kernel.org/majordomo-info.html

Patch

diff --git a/fs/xfs/xfs_bmap_util.c b/fs/xfs/xfs_bmap_util.c
index 2b954308a1d6..da4867567647 100644
--- a/fs/xfs/xfs_bmap_util.c
+++ b/fs/xfs/xfs_bmap_util.c
@@ -1613,7 +1613,7 @@  xfs_swap_extents_check_format(
 	 * extent format...
 	 */
 	if (tip->i_d.di_format == XFS_DINODE_FMT_BTREE) {
-		if (XFS_IFORK_BOFF(ip) &&
+		if (XFS_IFORK_Q(ip) &&
 		    XFS_BMAP_BMDR_SPACE(tip->i_df.if_broot) > XFS_IFORK_BOFF(ip))
 			return -EINVAL;
 		if (XFS_IFORK_NEXTENTS(tip, XFS_DATA_FORK) <=
@@ -1623,7 +1623,7 @@  xfs_swap_extents_check_format(
 
 	/* Reciprocal target->temp btree format checks */
 	if (ip->i_d.di_format == XFS_DINODE_FMT_BTREE) {
-		if (XFS_IFORK_BOFF(tip) &&
+		if (XFS_IFORK_Q(tip) &&
 		    XFS_BMAP_BMDR_SPACE(ip->i_df.if_broot) > XFS_IFORK_BOFF(tip))
 			return -EINVAL;
 		if (XFS_IFORK_NEXTENTS(ip, XFS_DATA_FORK) <=