fs: Remove aops->freepage
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Thu, 5 May 2022 04:43:09 +0000 (00:43 -0400)
committerMatthew Wilcox (Oracle) <willy@infradead.org>
Tue, 10 May 2022 03:12:54 +0000 (23:12 -0400)
All implementations now use free_folio so we can delete the callers
and the method.

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
include/linux/fs.h
mm/filemap.c
mm/vmscan.c

index 915844e6293e6b9f130f358ad0b8949e3805d0e3..6f305f1097a549cd63a72b35532272a1407d88cb 100644 (file)
@@ -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
index adcdef56890f14ddc7759a561d953ca8696ebc71..fa0ca674450f8539173341085bd6d3749c588e50 100644 (file)
@@ -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);
index d8a031128ad07a83d3cb87c2113ec9074fbea535..edc89f26b738cfb23e26011d4bab3a615cb58f74 100644 (file)
@@ -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;