Since introducing the ability to have large folios in the page cache, it's been possible to have a hwpoisoned tail page returned from the fault handler. We handle this situation poorly; failing to remove the affected page from use. This isn't a minimal patch to fix it, it's a full conversion of all the code surrounding it. I'll take care of backports to 6.5/6.1. Matthew Wilcox (Oracle) (6): mm: Make mapping_evict_folio() the preferred way to evict clean folios mm: Convert __do_fault() to use a folio mm: Use mapping_evict_folio() in truncate_error_page() mm: Convert soft_offline_in_use_page() to use a folio mm: Convert isolate_page() to mf_isolate_folio() mm: Remove invalidate_inode_page() mm/internal.h | 2 +- mm/memory-failure.c | 54 ++++++++++++++++++++++----------------------- mm/memory.c | 20 ++++++++--------- mm/truncate.c | 42 ++++++++++++++--------------------- 4 files changed, 55 insertions(+), 63 deletions(-) -- 2.42.0