Hi all, this series adds back delalloc support for RT inodes, at least if the RT extent size is a single file system block. This shows really nice performance improvements for workloads that frequently rewrite or append to files, and improves fragmentation for larger writes. On other workloads it sometimes shows small performance improvements or flat performance. Changes since v3: - drop gratuitous changes to xfs_mod_freecounter/xfs_add_freecounter that caused a warning to be logged when it shouldn't. - track delalloc rtextents instead of rtblocks in xfs_mount - fix commit message spelling an typos Changes since v2: - keep casting to int64_t for xfs_mod_delalloc - add a patch to clarify and assert that the block delta in xfs_trans_unreserve_and_mod_sb can only be positive Diffstat: libxfs/xfs_ag.c | 4 - libxfs/xfs_ag_resv.c | 24 ++--------- libxfs/xfs_ag_resv.h | 2 libxfs/xfs_alloc.c | 4 - libxfs/xfs_bmap.c | 102 ++++++++++++++++++++++++++++++-------------------- libxfs/xfs_rtbitmap.c | 14 ++++++ libxfs/xfs_shared.h | 6 +- scrub/fscounters.c | 4 + scrub/repair.c | 5 -- xfs_fsops.c | 29 +++----------- xfs_fsops.h | 2 xfs_inode.c | 3 - xfs_iomap.c | 44 ++++++++++++++------- xfs_iops.c | 2 xfs_mount.c | 74 +++++++++++++++++++----------------- xfs_mount.h | 41 ++++++++++++++++---- xfs_rtalloc.c | 2 xfs_super.c | 17 +++++--- xfs_trace.h | 1 xfs_trans.c | 63 ++++++++++++++++-------------- 20 files changed, 255 insertions(+), 188 deletions(-)