Re: [PATCH RESEND v6 3/9] mm: factor helpers for memory_failure_dev_pagemap

From: Dan Williams
Date: Fri Aug 20 2021 - 12:54:23 EST


On Thu, Aug 5, 2021 at 6:01 PM Jane Chu <jane.chu@xxxxxxxxxx> wrote:
>
>
> On 7/30/2021 3:01 AM, Shiyang Ruan wrote:
> > - /*
> > - * Prevent the inode from being freed while we are interrogating
> > - * the address_space, typically this would be handled by
> > - * lock_page(), but dax pages do not use the page lock. This
> > - * also prevents changes to the mapping of this pfn until
> > - * poison signaling is complete.
> > - */
> > - cookie = dax_lock_page(page);
> > - if (!cookie)
> > - goto out;
> > -
> > if (hwpoison_filter(page)) {
> > rc = 0;
> > - goto unlock;
> > + goto out;
> > }
>
> why isn't dax_lock_page() needed for hwpoison_filter() check?

Good catch. hwpoison_filter() is indeed consulting page->mapping->host
which needs to be synchronized against inode lifetime.