Hi all, this series cleans up the xfs writepage code and then lifts it to fs/iomap.c so that it could be use by other file system. I've been wanting to this for a while so that I could eventually convert gfs2 over to it, but I never got to it. Now Damien has a new zonefs file system for semi-raw access to zoned block devices that would like to use the iomap code instead of reinventing it, so I finally had to do the work. 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