Re: [PATCH] mm: Remove redundant test from find_get_pages_contig

From: Andrew Morton
Date: Mon Jan 07 2019 - 18:09:08 EST


On Mon, 7 Jan 2019 14:39:35 -0800 Matthew Wilcox <willy@xxxxxxxxxxxxx> wrote:

> On Mon, Jan 07, 2019 at 02:33:19PM -0800, Andrew Morton wrote:
> > On Mon, 7 Jan 2019 12:02:24 -0800 Matthew Wilcox <willy@xxxxxxxxxxxxx> wrote:
> >
> > > After we establish a reference on the page, we check the pointer continues
> > > to be in the correct position in i_pages. There's no need to check the
> > > page->mapping or page->index afterwards; if those can change after we've
> > > got the reference, they can change after we return the page to the caller.
> >
> > But that isn't what the comment says.
>
> Right. That patch from Nick moved the check from before taking the
> ref to after taking the ref. It was racy to have it before. But it's
> unnecessary to have it afterwards -- pages can't move once there's a
> ref on them. Or if they can move, they can move after the ref is taken.

So Nick's patch was never necessary? I wonder what inspired it.

Would it be excessively cautious to put a WARN_ON_ONCE() in there for a
while?