Re: [RFC v2 2/8] shmem: convert to use is_folio_hwpoison()

From: Matthew Wilcox
Date: Fri May 26 2023 - 10:34:14 EST


On Fri, May 26, 2023 at 12:55:46AM -0700, Luis Chamberlain wrote:
> The PageHWPoison() call can be converted over to the respective folio
> call is_folio_hwpoison(). This introduces no functional changes.

Yes, it very much does!

> @@ -4548,7 +4548,7 @@ struct page *shmem_read_mapping_page_gfp(struct address_space *mapping,
> return &folio->page;
>
> page = folio_file_page(folio, index);
> - if (PageHWPoison(page)) {
> + if (is_folio_hwpoison(folio)) {
> folio_put(folio);

Imagine you have an order-9 folio and one of the pages in it gets
HWPoison. Before, you can read the other 511 pages in the folio.
After your patch, you can't read any of them. You've effectively
increased the blast radius of any hwerror, and I don't think that's an
acceptable change.