]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
f2fs: Convert f2fs_move_node_page() to f2fs_move_node_folio()
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Mon, 31 Mar 2025 20:11:40 +0000 (21:11 +0100)
committerJaegeuk Kim <jaegeuk@kernel.org>
Mon, 28 Apr 2025 15:26:37 +0000 (15:26 +0000)
Pass the folio in from the one caller and use it throughout.
Removes eight hidden calls to compound_head().

Signed-off-by: Matthew Wilcox (Oracle) <willy@infradead.org>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/f2fs.h
fs/f2fs/gc.c
fs/f2fs/node.c

index 09778f39dccf35ef9783473d601330d2e595938d..754d9bd92562af1a4f37aeec9598c9344970e697 100644 (file)
@@ -3749,7 +3749,7 @@ struct folio *f2fs_get_inode_folio(struct f2fs_sb_info *sbi, pgoff_t ino);
 struct page *f2fs_get_inode_page(struct f2fs_sb_info *sbi, pgoff_t ino);
 struct folio *f2fs_get_xnode_folio(struct f2fs_sb_info *sbi, pgoff_t xnid);
 struct page *f2fs_get_xnode_page(struct f2fs_sb_info *sbi, pgoff_t xnid);
-int f2fs_move_node_page(struct page *node_page, int gc_type);
+int f2fs_move_node_folio(struct folio *node_folio, int gc_type);
 void f2fs_flush_inline_data(struct f2fs_sb_info *sbi);
 int f2fs_fsync_node_pages(struct f2fs_sb_info *sbi, struct inode *inode,
                        struct writeback_control *wbc, bool atomic,
index a88c0dbd2a42bed7155ece77d39d976848c421d8..bfbda0fd6ac9e8589e45dd7ed61bfd1a15b85e7f 100644 (file)
@@ -1088,7 +1088,7 @@ next_step:
                        continue;
                }
 
-               err = f2fs_move_node_page(&node_folio->page, gc_type);
+               err = f2fs_move_node_folio(node_folio, gc_type);
                if (!err && gc_type == FG_GC)
                        submitted++;
                stat_inc_node_blk_count(sbi, 1, gc_type);
index e74ffab294090a846c14e629e1b69b081904f280..ddc4df93ef7381d7f9fe99d6c4a8f75c9008032f 100644 (file)
@@ -1787,7 +1787,7 @@ redirty_out:
        return AOP_WRITEPAGE_ACTIVATE;
 }
 
-int f2fs_move_node_page(struct page *node_page, int gc_type)
+int f2fs_move_node_folio(struct folio *node_folio, int gc_type)
 {
        int err = 0;
 
@@ -1798,30 +1798,30 @@ int f2fs_move_node_page(struct page *node_page, int gc_type)
                        .for_reclaim = 0,
                };
 
-               f2fs_wait_on_page_writeback(node_page, NODE, true, true);
+               f2fs_folio_wait_writeback(node_folio, NODE, true, true);
 
-               set_page_dirty(node_page);
+               folio_mark_dirty(node_folio);
 
-               if (!clear_page_dirty_for_io(node_page)) {
+               if (!folio_clear_dirty_for_io(node_folio)) {
                        err = -EAGAIN;
                        goto out_page;
                }
 
-               if (__write_node_page(node_page, false, NULL,
+               if (__write_node_page(&node_folio->page, false, NULL,
                                        &wbc, false, FS_GC_NODE_IO, NULL)) {
                        err = -EAGAIN;
-                       unlock_page(node_page);
+                       folio_unlock(node_folio);
                }
                goto release_page;
        } else {
                /* set page dirty and write it */
-               if (!folio_test_writeback(page_folio(node_page)))
-                       set_page_dirty(node_page);
+               if (!folio_test_writeback(node_folio))
+                       folio_mark_dirty(node_folio);
        }
 out_page:
-       unlock_page(node_page);
+       folio_unlock(node_folio);
 release_page:
-       f2fs_put_page(node_page, 0);
+       f2fs_folio_put(node_folio, false);
        return err;
 }