On Fri, May 26, 2023 at 10:41:00AM -0700, Luis Chamberlain wrote: > On Fri, May 26, 2023 at 03:32:54PM +0100, Matthew Wilcox wrote: > > 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. > > But before we didn't use high order folios for reads on tmpfs? Sure we did! If SHMEM_HUGE_ALWAYS is set, we can see reads of THPs (order-9 folios) in this path.