All implementations now use free_folio so we can delete the callers and the method. Signed-off-by: Matthew Wilcox (Oracle) <willy@xxxxxxxxxxxxx> --- include/linux/fs.h | 1 - mm/filemap.c | 7 ------- mm/vmscan.c | 4 ---- 3 files changed, 12 deletions(-) diff --git a/include/linux/fs.h b/include/linux/fs.h index 915844e6293e..6f305f1097a5 100644 --- a/include/linux/fs.h +++ b/include/linux/fs.h @@ -357,7 +357,6 @@ struct address_space_operations { void (*invalidate_folio) (struct folio *, size_t offset, size_t len); bool (*release_folio)(struct folio *, gfp_t); void (*free_folio)(struct folio *folio); - void (*freepage)(struct page *); ssize_t (*direct_IO)(struct kiocb *, struct iov_iter *iter); /* * migrate the contents of a page to the specified target. If diff --git a/mm/filemap.c b/mm/filemap.c index adcdef56890f..fa0ca674450f 100644 --- a/mm/filemap.c +++ b/mm/filemap.c @@ -225,16 +225,12 @@ void __filemap_remove_folio(struct folio *folio, void *shadow) void filemap_free_folio(struct address_space *mapping, struct folio *folio) { - void (*freepage)(struct page *); void (*free_folio)(struct folio *); int refs = 1; free_folio = mapping->a_ops->free_folio; if (free_folio) free_folio(folio); - freepage = mapping->a_ops->freepage; - if (freepage) - freepage(&folio->page); if (folio_test_large(folio) && !folio_test_hugetlb(folio)) refs = folio_nr_pages(folio); @@ -812,7 +808,6 @@ void replace_page_cache_page(struct page *old, struct page *new) struct folio *fnew = page_folio(new); struct address_space *mapping = old->mapping; void (*free_folio)(struct folio *) = mapping->a_ops->free_folio; - void (*freepage)(struct page *) = mapping->a_ops->freepage; pgoff_t offset = old->index; XA_STATE(xas, &mapping->i_pages, offset); @@ -842,8 +837,6 @@ void replace_page_cache_page(struct page *old, struct page *new) xas_unlock_irq(&xas); if (free_folio) free_folio(fold); - if (freepage) - freepage(old); folio_put(fold); } EXPORT_SYMBOL_GPL(replace_page_cache_page); diff --git a/mm/vmscan.c b/mm/vmscan.c index d8a031128ad0..edc89f26b738 100644 --- a/mm/vmscan.c +++ b/mm/vmscan.c @@ -1283,10 +1283,8 @@ static int __remove_mapping(struct address_space *mapping, struct folio *folio, put_swap_page(&folio->page, swap); } else { void (*free_folio)(struct folio *); - void (*freepage)(struct page *); free_folio = mapping->a_ops->free_folio; - freepage = mapping->a_ops->freepage; /* * Remember a shadow entry for reclaimed file cache in * order to detect refaults, thus thrashing, later on. @@ -1314,8 +1312,6 @@ static int __remove_mapping(struct address_space *mapping, struct folio *folio, if (free_folio) free_folio(folio); - if (freepage) - freepage(&folio->page); } return 1; -- 2.34.1