forked from luck/tmp_suning_uos_patched
xfs: minor cleanup for xfs_reflink_end_cow
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>
This commit is contained in:
parent
1d4352de51
commit
df79b81b2e
|
@ -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);
|
||||
|
|
Loading…
Reference in New Issue
Block a user