On Thu, Aug 5, 2021 at 6:01 PM Jane Chu [off-list ref] wrote:
On 7/30/2021 3:01 AM, Shiyang Ruan wrote:
quoted
- /*
- * 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.