mm: use mapping_evict_folio() in truncate_error_page()
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Wed, 8 Nov 2023 18:28:06 +0000 (18:28 +0000)
committerAndrew Morton <akpm@linux-foundation.org>
Mon, 11 Dec 2023 00:51:38 +0000 (16:51 -0800)
We already have the folio and the mapping, so replace the call to
invalidate_inode_page() with mapping_evict_folio().

Link: https://lkml.kernel.org/r/20231108182809.602073-4-willy@infradead.org
Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Cc: Naoya Horiguchi <naoya.horiguchi@nec.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
mm/memory-failure.c

index 660c218..9f03952 100644 (file)
@@ -930,10 +930,10 @@ static int delete_from_lru_cache(struct page *p)
 static int truncate_error_page(struct page *p, unsigned long pfn,
                                struct address_space *mapping)
 {
+       struct folio *folio = page_folio(p);
        int ret = MF_FAILED;
 
        if (mapping->a_ops->error_remove_page) {
-               struct folio *folio = page_folio(p);
                int err = mapping->a_ops->error_remove_page(mapping, p);
 
                if (err != 0)
@@ -947,7 +947,7 @@ static int truncate_error_page(struct page *p, unsigned long pfn,
                 * If the file system doesn't support it just invalidate
                 * This fails on dirty or anything with private pages
                 */
-               if (invalidate_inode_page(p))
+               if (mapping_evict_folio(mapping, folio))
                        ret = MF_RECOVERED;
                else
                        pr_info("%#lx: Failed to invalidate\n", pfn);