f2fs: Convert f2fs_in_warm_node_list() to take a folio
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Tue, 18 Feb 2025 05:51:50 +0000 (05:51 +0000)
committerJaegeuk Kim <jaegeuk@kernel.org>
Tue, 4 Mar 2025 17:02:25 +0000 (17:02 +0000)
All its callers now have access to a folio, so pass it in.  Removes
an access to page->mapping.

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/data.c
fs/f2fs/f2fs.h
fs/f2fs/node.c
fs/f2fs/segment.c

index 0e22595ef1a6abc085a15db4ec1fdb826e413fe3..383b97f302215dd66650493a07f51f721800e250 100644 (file)
@@ -358,7 +358,7 @@ static void f2fs_write_end_io(struct bio *bio)
                                folio->index != nid_of_node(&folio->page));
 
                dec_page_count(sbi, type);
-               if (f2fs_in_warm_node_list(sbi, &folio->page))
+               if (f2fs_in_warm_node_list(sbi, folio))
                        f2fs_del_fsync_node_entry(sbi, &folio->page);
                clear_page_private_gcing(&folio->page);
                folio_end_writeback(folio);
index e0af6b44197a2189b226553bd3d8343508122d8b..8c74005161642331653f011c7ad0b79faa610a6e 100644 (file)
@@ -3678,7 +3678,8 @@ struct node_info;
 
 int f2fs_check_nid_range(struct f2fs_sb_info *sbi, nid_t nid);
 bool f2fs_available_free_memory(struct f2fs_sb_info *sbi, int type);
-bool f2fs_in_warm_node_list(struct f2fs_sb_info *sbi, struct page *page);
+bool f2fs_in_warm_node_list(struct f2fs_sb_info *sbi,
+               const struct folio *folio);
 void f2fs_init_fsync_node_info(struct f2fs_sb_info *sbi);
 void f2fs_del_fsync_node_entry(struct f2fs_sb_info *sbi, struct page *page);
 void f2fs_reset_fsync_node_info(struct f2fs_sb_info *sbi);
index 19581555e79b45d88d274aed2037289470c851b1..cd37eeaf01a1969bc100e09229ade938cbaa2389 100644 (file)
@@ -310,10 +310,10 @@ static unsigned int __gang_lookup_nat_set(struct f2fs_nm_info *nm_i,
                                                        start, nr);
 }
 
-bool f2fs_in_warm_node_list(struct f2fs_sb_info *sbi, struct page *page)
+bool f2fs_in_warm_node_list(struct f2fs_sb_info *sbi, const struct folio *folio)
 {
-       return NODE_MAPPING(sbi) == page->mapping &&
-                       IS_DNODE(page) && is_cold_node(page);
+       return NODE_MAPPING(sbi) == folio->mapping &&
+                       IS_DNODE(&folio->page) && is_cold_node(&folio->page);
 }
 
 void f2fs_init_fsync_node_info(struct f2fs_sb_info *sbi)
@@ -1701,7 +1701,7 @@ static int __write_node_page(struct page *page, bool atomic, bool *submitted,
                fio.op_flags |= REQ_PREFLUSH | REQ_FUA;
 
        /* should add to global list before clearing PAGECACHE status */
-       if (f2fs_in_warm_node_list(sbi, page)) {
+       if (f2fs_in_warm_node_list(sbi, folio)) {
                seq = f2fs_add_fsync_node_entry(sbi, page);
                if (seq_id)
                        *seq_id = seq;
index 1abdebfe6b487cca1dfd9b551fa3788bcdea77dd..50a346f7cb93b034cb244def379d07fc3c1d32c8 100644 (file)
@@ -3915,7 +3915,7 @@ static void do_write_page(struct f2fs_summary *sum, struct f2fs_io_info *fio)
                if (fscrypt_inode_uses_fs_layer_crypto(folio->mapping->host))
                        fscrypt_finalize_bounce_page(&fio->encrypted_page);
                folio_end_writeback(folio);
-               if (f2fs_in_warm_node_list(fio->sbi, fio->page))
+               if (f2fs_in_warm_node_list(fio->sbi, folio))
                        f2fs_del_fsync_node_entry(fio->sbi, fio->page);
                goto out;
        }