]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
f2fs: Convert invalidatepage to invalidate_folio
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Wed, 9 Feb 2022 20:21:44 +0000 (20:21 +0000)
committerMatthew Wilcox (Oracle) <willy@infradead.org>
Tue, 15 Mar 2022 12:23:30 +0000 (08:23 -0400)
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: Matthew Wilcox (Oracle) <willy@infradead.org>
Tested-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
Acked-by: Damien Le Moal <damien.lemoal@opensource.wdc.com>
Tested-by: Mike Marshall <hubcap@omnibond.com> # orangefs
Tested-by: David Howells <dhowells@redhat.com> # afs
fs/f2fs/checkpoint.c
fs/f2fs/compress.c
fs/f2fs/data.c
fs/f2fs/f2fs.h
fs/f2fs/node.c

index 982f0170639fc26d0e62699d3a85f2c4b9c5b96e..097d792723cb5380cd35a08d11fb3f5a93596f7c 100644 (file)
@@ -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,
index d0c3aeba594549f835bca3b96b70987de5b4d405..ade5fbaf34f62dc3c780bc9da3b65603176c8215 100644 (file)
@@ -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)
index 8c417864c66ae3b5abdfbe0138cda383e71f9684..3e16c25d96cb03ff9363b715c64ac88e59d04460 100644 (file)
@@ -3492,17 +3492,16 @@ unlock_out:
        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,
index 68b44015514f51834b2c63b13bb37fb98d228bd3..cf31af917f38993793f3e5ba45d9fb84ebe17f55 100644 (file)
@@ -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,
index 50b2874e758c9fe94f9546424f2d71d715ec7a70..803c2b55ce86c02838252be835c2ebe3a1f57b55 100644 (file)
@@ -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,