Hi Darrick, this series cleans up the xfs writepage code and then lifts it to fs/iomap/ so that it could be use by other file system. Note: the submit_ioend hook has not been renamed. Feel free to rename it if you really dislike the name. Changes since v7: - fix various commit log typos - fix up various comments - move some of the iomap tracepoint additions to an earlier patch - rebased on top of "iomap: iomap that extends beyond EOF should be marked dirty" Changes since v6: - actually add trace.c to the patch - move back to the old order that massages XFS into shape and then lifts the code to iomap - cleanup iomap_ioend_compare - cleanup the add_to_ioend checks Changes since v5: - move the tracing code to fs/iomap/trace.[ch] - fix a bisection issue with the tracing code - add an assert that xfs_end_io now only gets "complicated" completions - better document the iomap_writeback_ops methods in iomap.h Changes since v4: - rebased on top 5.4-rc1 - drop the addition of list_pop / list_pop_entry - re-split a few patches to better fit Darricks scheme of keeping the iomap additions separate from the XFS switchover Changes since v3: - re-split the pages to add new code to iomap and then switch xfs to it later (Darrick) Changes since v2: - rebased to v5.3-rc1 - folded in a few changes from the gfs2 enablement series Changes since v1: - rebased to the latest xfs for-next tree - keep the preallocated transactions for size updates - rename list_pop to list_pop_entry and related cleanups - better document the nofs context handling - document that the iomap tracepoints are not a stable API