Hi all, this series optimizes how we handle unmapping the old data fork extents when finishing COW I/O. To get there I also did a bunch of cleanups for helpers called by this code. Changes since v1: - remove the racy if_bytes in xfs_reflink_end_cow_extent enirely - pass an unsigned value to xfs_quota_unreserve_blkres - rename xfs_iext_count_upgrade to xfs_iext_count_ensure - only check for XFS_ERRTAG_REDUCE_MAX_IEXTENTS once in xfs_iext_count_ensure - roll the transaction after 128 EFIs - use a different name for the irec of the remapped extent in xfs_reflink_end_cow_extent Diffstat: libxfs/xfs_attr.c | 5 - libxfs/xfs_bmap.c | 21 +----- libxfs/xfs_bmap.h | 2 libxfs/xfs_inode_fork.c | 57 +++++++---------- libxfs/xfs_inode_fork.h | 6 - libxfs/xfs_trans_resv.h | 7 ++ scrub/newbt.c | 2 scrub/reap.c | 2 scrub/repair.h | 8 -- xfs_aops.c | 6 - xfs_bmap_item.c | 4 - xfs_bmap_util.c | 33 ++------- xfs_bmap_util.h | 2 xfs_dquot.c | 5 - xfs_iomap.c | 13 +-- xfs_quota.h | 23 ++---- xfs_reflink.c | 160 ++++++++++++++++++++++++++---------------------- xfs_rtalloc.c | 5 - 18 files changed, 159 insertions(+), 202 deletions(-)