f2fs: Use a folio in __clone_blkaddrs()
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Mon, 31 Mar 2025 20:11:12 +0000 (21:11 +0100)
committerJaegeuk Kim <jaegeuk@kernel.org>
Mon, 28 Apr 2025 15:26:33 +0000 (15:26 +0000)
Removes five 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/file.c

index 6c8250af129aa707792b41f4e02576ba10305b02..6d77497ef914effe4df1c6d100aa4251c86f4c86 100644 (file)
@@ -1413,26 +1413,26 @@ static int __clone_blkaddrs(struct inode *src_inode, struct inode *dst_inode,
 
                        f2fs_put_dnode(&dn);
                } else {
-                       struct page *psrc, *pdst;
+                       struct folio *fsrc, *fdst;
 
-                       psrc = f2fs_get_lock_data_page(src_inode,
+                       fsrc = f2fs_get_lock_data_folio(src_inode,
                                                        src + i, true);
-                       if (IS_ERR(psrc))
-                               return PTR_ERR(psrc);
-                       pdst = f2fs_get_new_data_page(dst_inode, NULL, dst + i,
+                       if (IS_ERR(fsrc))
+                               return PTR_ERR(fsrc);
+                       fdst = f2fs_get_new_data_folio(dst_inode, NULL, dst + i,
                                                                true);
-                       if (IS_ERR(pdst)) {
-                               f2fs_put_page(psrc, 1);
-                               return PTR_ERR(pdst);
+                       if (IS_ERR(fdst)) {
+                               f2fs_folio_put(fsrc, true);
+                               return PTR_ERR(fdst);
                        }
 
-                       f2fs_wait_on_page_writeback(pdst, DATA, true, true);
+                       f2fs_folio_wait_writeback(fdst, DATA, true, true);
 
-                       memcpy_page(pdst, 0, psrc, 0, PAGE_SIZE);
-                       set_page_dirty(pdst);
-                       set_page_private_gcing(pdst);
-                       f2fs_put_page(pdst, 1);
-                       f2fs_put_page(psrc, 1);
+                       memcpy_folio(fdst, 0, fsrc, 0, PAGE_SIZE);
+                       folio_mark_dirty(fdst);
+                       set_page_private_gcing(&fdst->page);
+                       f2fs_folio_put(fdst, true);
+                       f2fs_folio_put(fsrc, true);
 
                        ret = f2fs_truncate_hole(src_inode,
                                                src + i, src + i + 1);