xfs: fix the check for COW extents in xfs_swap_extents
authorChristoph Hellwig <hch@lst.de>
Wed, 14 Mar 2018 06:15:30 +0000 (23:15 -0700)
committerDarrick J. Wong <darrick.wong@oracle.com>
Thu, 15 Mar 2018 17:31:38 +0000 (10:31 -0700)
i_cnextents does not include delayed allocated extents, so switch
to the inode fork size check that we already use in other places
instead.

Signed-off-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Darrick J. Wong <darrick.wong@oracle.com>
Signed-off-by: Darrick J. Wong <darrick.wong@oracle.com>
fs/xfs/xfs_bmap_util.c

index e0a442f504e5e3d162e90cb2dc66b061dcf38a26..19ea7d086cf8e6b4f752e520f4f20e5fc07cae30 100644 (file)
@@ -2014,11 +2014,11 @@ xfs_swap_extents(
                ip->i_cowfp = tip->i_cowfp;
                tip->i_cowfp = cowfp;
 
-               if (ip->i_cowfp && ip->i_cnextents)
+               if (ip->i_cowfp && ip->i_cowfp->if_bytes)
                        xfs_inode_set_cowblocks_tag(ip);
                else
                        xfs_inode_clear_cowblocks_tag(ip);
-               if (tip->i_cowfp && tip->i_cnextents)
+               if (tip->i_cowfp && tip->i_cowfp->if_bytes)
                        xfs_inode_set_cowblocks_tag(tip);
                else
                        xfs_inode_clear_cowblocks_tag(tip);