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?