xfs: minor cleanup for xfs_reflink_end_cow
authorChristoph Hellwig <hch@lst.de>
Wed, 14 Mar 2018 06:15:33 +0000 (23:15 -0700)
committerDarrick J. Wong <darrick.wong@oracle.com>
Thu, 15 Mar 2018 17:31:38 +0000 (10:31 -0700)
Use xfs_iext_prev_extent to skip to the previous extent instead of
opencoding it.

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_reflink.c

index 90aac8889dd92ec80ac6f73a8948512b26af7ee0..cdbd342a5249988aeecadcc695ac2f51c6a3c085 100644 (file)
@@ -762,10 +762,8 @@ xfs_reflink_end_cow(
                xfs_trim_extent(&del, offset_fsb, end_fsb - offset_fsb);
 
                /* Extent delete may have bumped ext forward */
-               if (!del.br_blockcount) {
-                       xfs_iext_prev(ifp, &icur);
-                       goto next_extent;
-               }
+               if (!del.br_blockcount)
+                       goto prev_extent;
 
                ASSERT(!isnullstartblock(got.br_startblock));
 
@@ -774,10 +772,8 @@ xfs_reflink_end_cow(
                 * speculatively preallocated CoW extents that have been
                 * allocated but have not yet been involved in a write.
                 */
-               if (got.br_state == XFS_EXT_UNWRITTEN) {
-                       xfs_iext_prev(ifp, &icur);
-                       goto next_extent;
-               }
+               if (got.br_state == XFS_EXT_UNWRITTEN)
+                       goto prev_extent;
 
                /* Unmap the old blocks in the data fork. */
                xfs_defer_init(&dfops, &firstfsb);
@@ -816,9 +812,12 @@ xfs_reflink_end_cow(
                error = xfs_defer_finish(&tp, &dfops);
                if (error)
                        goto out_defer;
-next_extent:
                if (!xfs_iext_get_extent(ifp, &icur, &got))
                        break;
+               continue;
+prev_extent:
+               if (!xfs_iext_prev_extent(ifp, &icur, &got))
+                       break;
        }
 
        error = xfs_trans_commit(tp);