Hi all, this is an alternative approach to the writeback part of the "fuse: use iomap for buffered writes + writeback" series from Joanne. It only handles the writeback side, not the write into page cache or read sides, and also doesn't allow building the writeback code without CONFIG_BLOCK yet, despite making some progress to that. The big difference compared to Joanne's version is that I hope the split between the generic and ioend/bio based writeback code is a bit cleaner here. We have two methods that define the split between the generic writeback code, and the implemementation of it, and all knowledge of ioends and bios now sits below that layer. Diffstat: Documentation/filesystems/iomap/operations.rst | 37 -- block/fops.c | 25 + fs/gfs2/aops.c | 8 fs/gfs2/bmap.c | 15 - fs/iomap/buffered-io.c | 323 +++---------------------- fs/iomap/internal.h | 1 fs/iomap/ioend.c | 220 ++++++++++++++++- fs/iomap/trace.h | 2 fs/xfs/xfs_aops.c | 238 ++++++++++-------- fs/zonefs/file.c | 29 +- include/linux/iomap.h | 48 +-- 11 files changed, 487 insertions(+), 459 deletions(-)