Re: [PATCH] [11/19] HWPOISON: Refactor truncate to allow direct truncating of page v2

Wu Fengguang
2009-08-05T15:12:27Z

On Wed, Aug 05, 2009 at 10:01:45PM +0800, Nick Piggin wrote:
> On Wed, Aug 05, 2009 at 03:46:08PM +0200, Andi Kleen wrote:
> > On Wed, Aug 05, 2009 at 12:20:08PM +0200, Nick Piggin wrote:
> > > > truncate_complete_page(struct address_space *mapping, struct page *page)
> > > > {
> > > > if (page->mapping != mapping)
> > > > - return;
> > > > + return -EIO;
> > >
> > > Hmm, at this point, the page must have been removed from pagecache,
> > > so I don't know if you need to pass an error back?
> >
> > It could be reused, which would be bad for us?
>
> I haven't brought up the caller at this point, but IIRC you had
> the page locked and mapping confirmed at this point anyway so
> it would never be an error for your code.

Right, that 'if' will always evaluate to false for the hwpoison case.
Because that 'mapping' was taken from 'page->mapping' inside page lock
and they will just remain the same values.

> Probably it would be nice to just force callers to verify the page.
> Normally IMO it is much nicer and clearer to do it at the time the
> page gets locked, unless there is good reason otherwise.

Yes we do checked page->mapping after taking page lock.