On Tue, Jun 19, 2018 at 01:08:12PM +0200, Andreas Gruenbacher wrote: > What I'm seeing in the readpage address space operation is pages which > are not PageUptodate(), with a page-size buffer head that is > buffer_uptodate(). The filesystem doesn't bother keeping the page > flags in sync with the buffer head flags, nothing unusual. It is in fact highly unusual, as all the generic routines do set the page uptodate once all buffers are uptodate. > When > iomap_readpage is called on such a page, it will replace the current > contents with what's on disk, losing the changes in memory. So we > cannot just call iomap_readpages, we need to check the buffer head > flags as well. Or, since the old code is still needed for page size != > block size anyway, we can fall back to that for pages that have > buffers for now. I'd like to understand where that buffer_head comes from, something seems fishy here.