Hi all, This series cleans up some warts in the extent freeing log intent code. We start by acknowledging that this mechanism does not have anything to do with the bmap code by moving it to xfs_alloc.c and giving the function a more descriptive name. Then we clean up the tracepoints and the _finish_one call paths to pass the intent structure around. This reduces the overhead when the tracepoints are disabled and will make things much cleaner when we start adding realtime support in the next patch. I also incorporated a bunch of cleanups from Christoph Hellwig. If you're going to start using this code, I strongly recommend pulling from my git trees, which are linked below. This has been running on the djcloud for months with no problems. Enjoy! Comments and questions are, as always, welcome. --D kernel git tree: https://git.kernel.org/cgit/linux/kernel/git/djwong/xfs-linux.git/log/?h=extfree-intent-cleanups xfsprogs git tree: https://git.kernel.org/cgit/linux/kernel/git/djwong/xfsprogs-dev.git/log/?h=extfree-intent-cleanups --- Commits in this patchset: * xfs: clean up extent free log intent item tracepoint callsites * xfs: convert "skip_discard" to a proper flags bitset * xfs: pass the fsbno to xfs_perag_intent_get * xfs: add a xefi_entry helper * xfs: reuse xfs_extent_free_cancel_item * xfs: factor out a xfs_efd_add_extent helper * xfs: remove duplicate asserts in xfs_defer_extent_free * xfs: remove xfs_defer_agfl_block * xfs: move xfs_extent_free_defer_add to xfs_extfree_item.c --- fs/xfs/libxfs/xfs_ag.c | 2 - fs/xfs/libxfs/xfs_alloc.c | 92 ++++++++--------------------- fs/xfs/libxfs/xfs_alloc.h | 12 ++-- fs/xfs/libxfs/xfs_bmap.c | 12 +++- fs/xfs/libxfs/xfs_bmap_btree.c | 2 - fs/xfs/libxfs/xfs_ialloc.c | 5 +- fs/xfs/libxfs/xfs_ialloc_btree.c | 2 - fs/xfs/libxfs/xfs_refcount.c | 6 +- fs/xfs/libxfs/xfs_refcount_btree.c | 2 - fs/xfs/scrub/newbt.c | 5 +- fs/xfs/scrub/reap.c | 7 +- fs/xfs/xfs_bmap_item.c | 6 -- fs/xfs/xfs_drain.c | 8 +-- fs/xfs/xfs_drain.h | 5 +- fs/xfs/xfs_extfree_item.c | 115 +++++++++++++++++------------------- fs/xfs/xfs_extfree_item.h | 6 ++ fs/xfs/xfs_refcount_item.c | 5 -- fs/xfs/xfs_reflink.c | 2 - fs/xfs/xfs_rmap_item.c | 5 -- fs/xfs/xfs_trace.h | 33 +++++----- 20 files changed, 141 insertions(+), 191 deletions(-)