From 4cc1ee5e654114aa7fac6993488ad2cd0b3411bb Mon Sep 17 00:00:00 2001 From: "Darrick J. Wong" Date: Wed, 30 Aug 2017 16:06:36 -0700 Subject: xfs: simplify the rmap code in xfs_bmse_merge In Christoph's patch to refactor xfs_bmse_merge, the updated rmap code does more work than it needs to (because map-extent auto-merges records). Remove the unnecessary unmap and save ourselves a deferred op. Signed-off-by: Darrick J. Wong Reviewed-by: Christoph Hellwig --- fs/xfs/libxfs/xfs_bmap.c | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) (limited to 'fs/xfs') diff --git a/fs/xfs/libxfs/xfs_bmap.c b/fs/xfs/libxfs/xfs_bmap.c index 9b877024c804..9558f5ee1bf9 100644 --- a/fs/xfs/libxfs/xfs_bmap.c +++ b/fs/xfs/libxfs/xfs_bmap.c @@ -5942,13 +5942,12 @@ done: xfs_iext_update_extent(ifp, current_ext - 1, &new); xfs_iext_remove(ip, current_ext, 1, 0); - /* update reverse mapping */ + /* update reverse mapping. rmap functions merge the rmaps for us */ error = xfs_rmap_unmap_extent(mp, dfops, ip, whichfork, got); if (error) return error; - error = xfs_rmap_unmap_extent(mp, dfops, ip, whichfork, left); - if (error) - return error; + memcpy(&new, got, sizeof(new)); + new.br_startoff = left->br_startoff + left->br_blockcount; return xfs_rmap_map_extent(mp, dfops, ip, whichfork, &new); } -- cgit v1.2.3