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

f2fs: Convert invalidatepage to invalidate_folio



This is a minimal change which just accepts the new arguments and passes
the single struct page to the functions which do the work.  There is
very little progress here toards making f2fs support large folios.

Signed-off-by: default avatarMatthew Wilcox (Oracle) <willy@infradead.org>
Tested-by: default avatarDamien Le Moal <damien.lemoal@opensource.wdc.com>
Acked-by: default avatarDamien Le Moal <damien.lemoal@opensource.wdc.com>
Tested-by: Mike Marshall <hubcap@omnibond.com> # orangefs
Tested-by: David Howells <dhowells@redhat.com> # afs
parent ccd16945
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -455,7 +455,7 @@ const struct address_space_operations f2fs_meta_aops = {
	.writepage	= f2fs_write_meta_page,
	.writepages	= f2fs_write_meta_pages,
	.set_page_dirty	= f2fs_set_meta_page_dirty,
	.invalidatepage = f2fs_invalidate_page,
	.invalidate_folio = f2fs_invalidate_folio,
	.releasepage	= f2fs_release_page,
#ifdef CONFIG_MIGRATION
	.migratepage    = f2fs_migrate_page,
+1 −1
Original line number Diff line number Diff line
@@ -1750,7 +1750,7 @@ unsigned int f2fs_cluster_blocks_are_contiguous(struct dnode_of_data *dn)

const struct address_space_operations f2fs_compress_aops = {
	.releasepage = f2fs_release_page,
	.invalidatepage = f2fs_invalidate_page,
	.invalidate_folio = f2fs_invalidate_folio,
};

struct address_space *COMPRESS_MAPPING(struct f2fs_sb_info *sbi)
+10 −12
Original line number Diff line number Diff line
@@ -3492,17 +3492,16 @@ static int f2fs_write_end(struct file *file,
	return copied;
}

void f2fs_invalidate_page(struct page *page, unsigned int offset,
							unsigned int length)
void f2fs_invalidate_folio(struct folio *folio, size_t offset, size_t length)
{
	struct inode *inode = page->mapping->host;
	struct inode *inode = folio->mapping->host;
	struct f2fs_sb_info *sbi = F2FS_I_SB(inode);

	if (inode->i_ino >= F2FS_ROOT_INO(sbi) &&
		(offset % PAGE_SIZE || length != PAGE_SIZE))
				(offset || length != folio_size(folio)))
		return;

	if (PageDirty(page)) {
	if (folio_test_dirty(folio)) {
		if (inode->i_ino == F2FS_META_INO(sbi)) {
			dec_page_count(sbi, F2FS_DIRTY_META);
		} else if (inode->i_ino == F2FS_NODE_INO(sbi)) {
@@ -3513,17 +3512,16 @@ void f2fs_invalidate_page(struct page *page, unsigned int offset,
		}
	}

	clear_page_private_gcing(page);
	clear_page_private_gcing(&folio->page);

	if (test_opt(sbi, COMPRESS_CACHE) &&
			inode->i_ino == F2FS_COMPRESS_INO(sbi))
		clear_page_private_data(page);
		clear_page_private_data(&folio->page);

	if (page_private_atomic(page))
		return f2fs_drop_inmem_page(inode, page);
	if (page_private_atomic(&folio->page))
		return f2fs_drop_inmem_page(inode, &folio->page);

	detach_page_private(page);
	set_page_private(page, 0);
	folio_detach_private(folio);
}

int f2fs_release_page(struct page *page, gfp_t wait)
@@ -3939,7 +3937,7 @@ const struct address_space_operations f2fs_dblock_aops = {
	.write_begin	= f2fs_write_begin,
	.write_end	= f2fs_write_end,
	.set_page_dirty	= f2fs_set_data_page_dirty,
	.invalidatepage	= f2fs_invalidate_page,
	.invalidate_folio = f2fs_invalidate_folio,
	.releasepage	= f2fs_release_page,
	.direct_IO	= noop_direct_IO,
	.bmap		= f2fs_bmap,
+1 −2
Original line number Diff line number Diff line
@@ -3661,8 +3661,7 @@ int f2fs_write_single_data_page(struct page *page, int *submitted,
				enum iostat_type io_type,
				int compr_blocks, bool allow_balance);
void f2fs_write_failed(struct inode *inode, loff_t to);
void f2fs_invalidate_page(struct page *page, unsigned int offset,
			unsigned int length);
void f2fs_invalidate_folio(struct folio *folio, size_t offset, size_t length);
int f2fs_release_page(struct page *page, gfp_t wait);
#ifdef CONFIG_MIGRATION
int f2fs_migrate_page(struct address_space *mapping, struct page *newpage,
+1 −1
Original line number Diff line number Diff line
@@ -2158,7 +2158,7 @@ const struct address_space_operations f2fs_node_aops = {
	.writepage	= f2fs_write_node_page,
	.writepages	= f2fs_write_node_pages,
	.set_page_dirty	= f2fs_set_node_page_dirty,
	.invalidatepage	= f2fs_invalidate_page,
	.invalidate_folio = f2fs_invalidate_folio,
	.releasepage	= f2fs_release_page,
#ifdef CONFIG_MIGRATION
	.migratepage	= f2fs_migrate_page,