Commit 8560cb1a authored by Matthew Wilcox (Oracle)'s avatar Matthew Wilcox (Oracle)
Browse files

fs: Remove aops->freepage



All implementations now use free_folio so we can delete the callers
and the method.

Signed-off-by: default avatarMatthew Wilcox (Oracle) <willy@infradead.org>
parent 6612ed24
Loading
Loading
Loading
Loading
+0 −1
Original line number Diff line number Diff line
@@ -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
+0 −7
Original line number Diff line number Diff line
@@ -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);
+0 −4
Original line number Diff line number Diff line
@@ -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;