On Wed, Apr 09, 2025 at 07:56:07PM -0700, John Hubbard wrote: > This topic always worries me, because the original problem with > dirty pages is still unfixed: setting pages dirty upon unpinning > is both widely done (last time I checked), and yet broken, because > it doesn't do a mkdirty() call to set up writeback buffers. > > The solution always seemed to point toward "get a file lease on that > range, before pinning", but it's a contentious design area to say > the least. For the bio based direct I/O implementations we do set the pages dirty before starting I/O using bio_set_pages_dirty, which uses folio_mark_dirty and thus calls into the file systems using ->dirty_folio. But we also do a second pass on I/O completion before the buffers are unpinned. Which I think now that we pin the folios is superfluous.