On Mon, Jun 09, 2025 at 09:57:41AM -0700, Darrick J. Wong wrote: > > It might also be worth stating what you don't use. One big thing > > that springs to mind is ioends. Which are really useful if you > > need more than one request to handle a folio, something that is > > pretty common in network file systems. I guess you don't need > > that for fuse? > > My initial thought was "I wonder if Joanne would be better off with a > totally separate iomap_writepage_map_blocks implementation" I think that's basically what the patches do, right? > since I > *think* fuse just needs a callback from iomap to initiate FUSE_WRITE > calls on the dirty range(s) of a folio, and then fuse can call > mapping_set_error and iomap_finish_folio_write when those FUSE_WRITE > calls complete. There are no bios, so I don't see much point in using > the ioend machinery. Note that the mapping_set_error in iomap_writepage_map is only for synchronous errors for mapping setup anyway, all the actual I/O error are handled asynchronously anyway. Similar, clearing the writeback bit only happens for synchronous erorr, or the rare case of (almost) synchronous I/O.