On Thu, Apr 25, 2024 at 06:58:50PM +0530, Ritesh Harjani (IBM) wrote: > iomap_readpage_iter() handles "uptodate blocks" and "not uptodate blocks" > within a folio separately. This makes iomap_read_folio() to call into > ->iomap_begin() to request for extent mapping even though it might already > have an extent which is not fully processed. > > This happens when we either have a large folio or with bs < ps. In these > cases we can have sub blocks which can be uptodate (say for e.g. due to > previous writes). With iomap_read_folio_iter(), this is handled more > efficiently by not calling ->iomap_begin() call until all the sub blocks > with the current folio are processed. Maybe throw in a sentence here that this copies what iomap_readahead_iter already does? Otherwise this looks good to me modulo the offset comment from willy.