On Tue, Jun 06, 2023 at 05:13:51PM +0530, Ritesh Harjani (IBM) wrote: > We dont need to allocate an iof in ->write_begin() for writes where the > position and length completely overlap with the given folio. > Therefore, such cases are skipped. > > Currently when the folio is uptodate, we only allocate iof at writeback > time (in iomap_writepage_map()). This is ok until now, but when we are > going to add support for per-block dirty state bitmap in iof, this > could cause some performance degradation. The reason is that if we don't > allocate iof during ->write_begin(), then we will never mark the > necessary dirty bits in ->write_end() call. And we will have to mark all > the bits as dirty at the writeback time, that could cause the same write > amplification and performance problems as it is now. > > Reviewed-by: Darrick J. Wong <djwong@xxxxxxxxxx> > Signed-off-by: Ritesh Harjani (IBM) <ritesh.list@xxxxxxxxx> Looks good: Reviewed-by: Christoph Hellwig <hch@xxxxxx> (and didn't I ack an earlier of this already?)