提交 8560cb1a 编写于 作者: M Matthew Wilcox (Oracle)

fs: Remove aops->freepage

All implementations now use free_folio so we can delete the callers
and the method.
Signed-off-by: NMatthew Wilcox (Oracle) <willy@infradead.org>
上级 6612ed24
...@@ -357,7 +357,6 @@ struct address_space_operations { ...@@ -357,7 +357,6 @@ struct address_space_operations {
void (*invalidate_folio) (struct folio *, size_t offset, size_t len); void (*invalidate_folio) (struct folio *, size_t offset, size_t len);
bool (*release_folio)(struct folio *, gfp_t); bool (*release_folio)(struct folio *, gfp_t);
void (*free_folio)(struct folio *folio); void (*free_folio)(struct folio *folio);
void (*freepage)(struct page *);
ssize_t (*direct_IO)(struct kiocb *, struct iov_iter *iter); ssize_t (*direct_IO)(struct kiocb *, struct iov_iter *iter);
/* /*
* migrate the contents of a page to the specified target. If * migrate the contents of a page to the specified target. If
......
...@@ -225,16 +225,12 @@ void __filemap_remove_folio(struct folio *folio, void *shadow) ...@@ -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 filemap_free_folio(struct address_space *mapping, struct folio *folio)
{ {
void (*freepage)(struct page *);
void (*free_folio)(struct folio *); void (*free_folio)(struct folio *);
int refs = 1; int refs = 1;
free_folio = mapping->a_ops->free_folio; free_folio = mapping->a_ops->free_folio;
if (free_folio) if (free_folio)
free_folio(folio); free_folio(folio);
freepage = mapping->a_ops->freepage;
if (freepage)
freepage(&folio->page);
if (folio_test_large(folio) && !folio_test_hugetlb(folio)) if (folio_test_large(folio) && !folio_test_hugetlb(folio))
refs = folio_nr_pages(folio); refs = folio_nr_pages(folio);
...@@ -812,7 +808,6 @@ void replace_page_cache_page(struct page *old, struct page *new) ...@@ -812,7 +808,6 @@ void replace_page_cache_page(struct page *old, struct page *new)
struct folio *fnew = page_folio(new); struct folio *fnew = page_folio(new);
struct address_space *mapping = old->mapping; struct address_space *mapping = old->mapping;
void (*free_folio)(struct folio *) = mapping->a_ops->free_folio; void (*free_folio)(struct folio *) = mapping->a_ops->free_folio;
void (*freepage)(struct page *) = mapping->a_ops->freepage;
pgoff_t offset = old->index; pgoff_t offset = old->index;
XA_STATE(xas, &mapping->i_pages, offset); XA_STATE(xas, &mapping->i_pages, offset);
...@@ -842,8 +837,6 @@ void replace_page_cache_page(struct page *old, struct page *new) ...@@ -842,8 +837,6 @@ void replace_page_cache_page(struct page *old, struct page *new)
xas_unlock_irq(&xas); xas_unlock_irq(&xas);
if (free_folio) if (free_folio)
free_folio(fold); free_folio(fold);
if (freepage)
freepage(old);
folio_put(fold); folio_put(fold);
} }
EXPORT_SYMBOL_GPL(replace_page_cache_page); EXPORT_SYMBOL_GPL(replace_page_cache_page);
......
...@@ -1283,10 +1283,8 @@ static int __remove_mapping(struct address_space *mapping, struct folio *folio, ...@@ -1283,10 +1283,8 @@ static int __remove_mapping(struct address_space *mapping, struct folio *folio,
put_swap_page(&folio->page, swap); put_swap_page(&folio->page, swap);
} else { } else {
void (*free_folio)(struct folio *); void (*free_folio)(struct folio *);
void (*freepage)(struct page *);
free_folio = mapping->a_ops->free_folio; free_folio = mapping->a_ops->free_folio;
freepage = mapping->a_ops->freepage;
/* /*
* Remember a shadow entry for reclaimed file cache in * Remember a shadow entry for reclaimed file cache in
* order to detect refaults, thus thrashing, later on. * order to detect refaults, thus thrashing, later on.
...@@ -1314,8 +1312,6 @@ static int __remove_mapping(struct address_space *mapping, struct folio *folio, ...@@ -1314,8 +1312,6 @@ static int __remove_mapping(struct address_space *mapping, struct folio *folio,
if (free_folio) if (free_folio)
free_folio(folio); free_folio(folio);
if (freepage)
freepage(&folio->page);
} }
return 1; return 1;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册