From: Darrick J. Wong Date: Wed, 30 Aug 2017 23:06:36 +0000 (-0700) Subject: xfs: simplify the rmap code in xfs_bmse_merge X-Git-Url: http://git.lede-project.org./?a=commitdiff_plain;h=4cc1ee5e654114aa7fac6993488ad2cd0b3411bb;p=openwrt%2Fstaging%2Fblogic.git 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 --- 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); }