xfs: don't bring in extents in xfs_bmap_punch_delalloc_range
authorChristoph Hellwig <hch@lst.de>
Sat, 29 Sep 2018 03:47:46 +0000 (13:47 +1000)
committerDave Chinner <david@fromorbit.com>
Sat, 29 Sep 2018 03:47:46 +0000 (13:47 +1000)
This function is only used to punch out delayed allocations on I/O
failure, which means we need to have read the extents earlier.

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

index ae3cc393724f04574f8f54f1cf73c5840148900b..6de8d90041ff0e676e85e559c1b2eef65dd74946 100644 (file)
@@ -702,13 +702,9 @@ xfs_bmap_punch_delalloc_range(
        struct xfs_iext_cursor  icur;
        int                     error = 0;
 
-       xfs_ilock(ip, XFS_ILOCK_EXCL);
-       if (!(ifp->if_flags & XFS_IFEXTENTS)) {
-               error = xfs_iread_extents(NULL, ip, XFS_DATA_FORK);
-               if (error)
-                       goto out_unlock;
-       }
+       ASSERT(ifp->if_flags & XFS_IFEXTENTS);
 
+       xfs_ilock(ip, XFS_ILOCK_EXCL);
        if (!xfs_iext_lookup_extent_before(ip, ifp, &end_fsb, &icur, &got))
                goto out_unlock;