f2fs: Use a folio in do_write_page()
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Tue, 18 Feb 2025 05:51:47 +0000 (05:51 +0000)
committerJaegeuk Kim <jaegeuk@kernel.org>
Tue, 4 Mar 2025 17:02:25 +0000 (17:02 +0000)
Convert fio->page to a folio then use it where folio APIs exist.
Removes a reference to page->mapping and a hidden call 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/segment.c

index fd1f6e924e0f9e4bd539ad5f716404dc66a89865..1abdebfe6b487cca1dfd9b551fa3788bcdea77dd 100644 (file)
@@ -3901,6 +3901,7 @@ static int log_type_to_seg_type(enum log_type type)
 
 static void do_write_page(struct f2fs_summary *sum, struct f2fs_io_info *fio)
 {
+       struct folio *folio = page_folio(fio->page);
        enum log_type type = __get_segment_type(fio);
        int seg_type = log_type_to_seg_type(type);
        bool keep_order = (f2fs_lfs_mode(fio->sbi) &&
@@ -3911,9 +3912,9 @@ static void do_write_page(struct f2fs_summary *sum, struct f2fs_io_info *fio)
 
        if (f2fs_allocate_data_block(fio->sbi, fio->page, fio->old_blkaddr,
                        &fio->new_blkaddr, sum, type, fio)) {
-               if (fscrypt_inode_uses_fs_layer_crypto(fio->page->mapping->host))
+               if (fscrypt_inode_uses_fs_layer_crypto(folio->mapping->host))
                        fscrypt_finalize_bounce_page(&fio->encrypted_page);
-               end_page_writeback(fio->page);
+               folio_end_writeback(folio);
                if (f2fs_in_warm_node_list(fio->sbi, fio->page))
                        f2fs_del_fsync_node_entry(fio->sbi, fio->page);
                goto out;