Thread (6 messages) 6 messages, 2 authors, 2021-07-06

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

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help