From: Matthew Wilcox (Oracle) Date: Mon, 31 Mar 2025 20:11:40 +0000 (+0100) Subject: f2fs: Convert f2fs_move_node_page() to f2fs_move_node_folio() X-Git-Tag: v6.16-rc1~115^2~103 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=c795d9dbe035c6e9c0ecb3ff0e0fc6427a55a9a5;p=thirdparty%2Fkernel%2Flinux.git f2fs: Convert f2fs_move_node_page() to f2fs_move_node_folio() 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) Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim --- diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h index 09778f39dccf3..754d9bd92562a 100644 --- a/fs/f2fs/f2fs.h +++ b/fs/f2fs/f2fs.h @@ -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, diff --git a/fs/f2fs/gc.c b/fs/f2fs/gc.c index a88c0dbd2a42b..bfbda0fd6ac9e 100644 --- a/fs/f2fs/gc.c +++ b/fs/f2fs/gc.c @@ -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); diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c index e74ffab294090..ddc4df93ef738 100644 --- a/fs/f2fs/node.c +++ b/fs/f2fs/node.c @@ -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; }