On Mon, Jan 23, 2023 at 10:32:06PM -0800, Christoph Hellwig wrote: > On Tue, Jan 24, 2023 at 01:38:41PM +0800, Qu Wenruo wrote: > > The retry for file read is indeed triggered inside VFS, not fs/block/dm > > layer itself. > > Well, it's really MM code. If ->readahead fails, we eventually fall > back to a single-page ->radpage. That might still be more than one > sector in some cases, but at least nicely narrows down the range. I had code to split a large folio into single-page folios at one point, but I don't believe that ever got merged. At least, I can't find any trace of it in filemap.c or iomap/buffered_io.c. So I think we just retry the ->read_folio() call each time.