On Fri, May 25, 2018 at 07:58:14PM +0200, Andreas Grünbacher wrote: > > The right way to deal with that is to make > > inline data an explicit iomap type (done in my next posting of the > > buffer head removal series), and then have iomap_begin find the data, > > kmap it and return it in the iomap, with iomap_end doing any fixups. > > I see what you mean. How would iomap_write_actor deal with > IOMAP_INLINE -- just skip iomap_write_begin and iomap_write_end and > grab the page from the iomap?
I would add a data pointer to struct iomap and pass the data back from there. We'll still need most of iomap_write_begin / iomap_write_end, but just copy the data from the iomap instead of reading it from disk. Note that the block_write_begin code already handles that case for the get_blocks path.