]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
f2fs: Use a folio in move_data_block()
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Mon, 31 Mar 2025 20:11:21 +0000 (21:11 +0100)
committerJaegeuk Kim <jaegeuk@kernel.org>
Mon, 28 Apr 2025 15:26:34 +0000 (15:26 +0000)
Remove 11 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/gc.c

index 9e7de9e1f81567a8013860fff33feba35ff6ac13..2a7f24261b721bf3a123d2e4ef546a0300571143 100644 (file)
@@ -1307,8 +1307,7 @@ static int move_data_block(struct inode *inode, block_t bidx,
        struct dnode_of_data dn;
        struct f2fs_summary sum;
        struct node_info ni;
-       struct page *page;
-       struct folio *mfolio;
+       struct folio *folio, *mfolio;
        block_t newaddr;
        int err = 0;
        bool lfs_mode = f2fs_lfs_mode(fio.sbi);
@@ -1317,9 +1316,9 @@ static int move_data_block(struct inode *inode, block_t bidx,
                                CURSEG_ALL_DATA_ATGC : CURSEG_COLD_DATA;
 
        /* do not read out */
-       page = f2fs_grab_cache_page(mapping, bidx, false);
-       if (!page)
-               return -ENOMEM;
+       folio = f2fs_grab_cache_folio(mapping, bidx, false);
+       if (IS_ERR(folio))
+               return PTR_ERR(folio);
 
        if (!check_valid_map(F2FS_I_SB(inode), segno, off)) {
                err = -ENOENT;
@@ -1336,7 +1335,7 @@ static int move_data_block(struct inode *inode, block_t bidx,
                goto out;
 
        if (unlikely(dn.data_blkaddr == NULL_ADDR)) {
-               ClearPageUptodate(page);
+               folio_clear_uptodate(folio);
                err = -ENOENT;
                goto put_out;
        }
@@ -1345,7 +1344,7 @@ static int move_data_block(struct inode *inode, block_t bidx,
         * don't cache encrypted data into meta inode until previous dirty
         * data were writebacked to avoid racing between GC and flush.
         */
-       f2fs_wait_on_page_writeback(page, DATA, true, true);
+       f2fs_folio_wait_writeback(folio, DATA, true, true);
 
        f2fs_wait_on_block_writeback(inode, dn.data_blkaddr);
 
@@ -1354,7 +1353,7 @@ static int move_data_block(struct inode *inode, block_t bidx,
                goto put_out;
 
        /* read page */
-       fio.page = page;
+       fio.page = &folio->page;
        fio.new_blkaddr = fio.old_blkaddr = dn.data_blkaddr;
 
        if (lfs_mode)
@@ -1445,7 +1444,7 @@ up_out:
 put_out:
        f2fs_put_dnode(&dn);
 out:
-       f2fs_put_page(page, 1);
+       f2fs_folio_put(folio, true);
        return err;
 }