Re: [PATCH v2 1/2] iomap: Don't create iomap_page objects for inline files
From: Andreas Gruenbacher <agruenba@redhat.com>
Date: 2021-07-06 16:01:51
Also in:
linux-fsdevel
From: Andreas Gruenbacher <agruenba@redhat.com>
Date: 2021-07-06 16:01:51
Also in:
linux-fsdevel
On Tue, Jul 6, 2021 at 7:07 AM Christoph Hellwig [off-list ref] wrote:
On Mon, Jul 05, 2021 at 08:18:23PM +0200, Andreas Gruenbacher wrote:quoted
In iomap_readpage_actor, don't create iop objects for inline inodes. Otherwise, iomap_read_inline_data will set PageUptodate without setting iop->uptodate, and iomap_page_release will eventually complain. To prevent this kind of bug from occurring in the future, make sure the page doesn't have private data attached in iomap_read_inline_data. Signed-off-by: Andreas Gruenbacher <agruenba@redhat.com> Reviewed-by: Matthew Wilcox (Oracle) <willy@infradead.org>As mentioned last round I'd prefer to simply not create the iomap_page at all in the readpage/readpages path.
I've tried that by replacing the iomap_page_create with to_iomap_page in iomap_readpage_actor and with that, I'm getting a VM_BUG_ON_PAGE(!PageLocked(page)) in iomap_read_end_io -> unlock_page with generic/029. So there's obviously more to it than just not creating the iomap_page in iomap_readpage_actor. Getting rid of the iomap_page_create in iomap_readpage_actor completely isn't a necessary part of the bug fix. So can we focus on the bug fix for now, and worry about the improvement later?
Also this patch needs to go after the current patch 2 to be bisection clean.
Yes, makes sense. Thanks, Andreas