This series adds fuse iomap support for buffered writes and dirty folio writeback. This is needed so that granular uptodate and dirty tracking can be used in fuse when large folios are enabled. This has two big advantages. For writes, instead of the entire folio needing to be read into the page cache, only the relevant portions need to be. For writeback, only the dirty portions need to be written back instead of the entire folio. This patchset is on top of Christoph's iomap patchset [1] which is in his git tree git://git.infradead.org/users/hch/misc.git iomap-writeback-refactor. The changes in this patchset can be found in this git tree, https://github.com/joannekoong/linux/commits/fuse_iomap/ Please note that this patchset does not enable large folios yet. That will be sent out in a separate future patchset. Thanks, Joanne [1] https://lore.kernel.org/linux-fsdevel/20250708135132.3347932-1-hch@xxxxxx/ Changeset ------- v3 -> v4: * Get rid of writethrough goto (Miklos) * Move iomap_start_folio_write call to after error check (Darrick) * Tidy up args for fuse_writepage_need_send() (me) v3: https://lore.kernel.org/linux-fsdevel/20250624022135.832899-1-joannelkoong@xxxxxxxxx/ v2 -> v3: * Fix up fuse patches to use iomap APIs from Christoph's patches * Drop CONFIG_BLOCK patches * Add patch to use iomap for invalidation and partial uptodateness check * Add patch for refactoring fuse writeback to use iomap_writepage_ctx inode v2: https://lore.kernel.org/linux-fsdevel/20250613214642.2903225-1-joannelkoong@xxxxxxxxx/ v1 -> v2: * Drop IOMAP_IN_MEM type and just use IOMAP_MAPPED for fuse * Separate out new helper functions added to iomap into separate commits * Update iomap documentation * Clean up iomap_writeback_dirty_folio() locking logic w/ christoph's recommendation * Refactor ->map_blocks() to generic ->writeback_folio() * Refactor ->submit_ioend() to generic ->writeback_complete() * Add patch for changing 'count' to 'async_writeback' * Rebase commits onto linux branch instead of fuse branch v1: https://lore.kernel.org/linux-fsdevel/20250606233803.1421259-1-joannelkoong@xxxxxxxxx/ Joanne Koong (5): fuse: use iomap for buffered writes fuse: use iomap for writeback fuse: use iomap for folio laundering fuse: hook into iomap for invalidating and checking partial uptodateness fuse: refactor writeback to use iomap_writepage_ctx inode fs/fuse/Kconfig | 1 + fs/fuse/file.c | 339 +++++++++++++++++++++--------------------------- 2 files changed, 148 insertions(+), 192 deletions(-) -- 2.47.1