f2fs: Use a folio in read_compacted_summaries()
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Mon, 31 Mar 2025 20:10:54 +0000 (21:10 +0100)
committerJaegeuk Kim <jaegeuk@kernel.org>
Mon, 28 Apr 2025 15:26:30 +0000 (15:26 +0000)
Get a folio instead of a page.  Saves two 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/segment.c

index b6f32cc157834715eccb1d0c7360a94b234ba1bd..ee94834a1caccce9b1690d36270886d31f219664 100644 (file)
@@ -4219,16 +4219,16 @@ static int read_compacted_summaries(struct f2fs_sb_info *sbi)
        struct f2fs_checkpoint *ckpt = F2FS_CKPT(sbi);
        struct curseg_info *seg_i;
        unsigned char *kaddr;
-       struct page *page;
+       struct folio *folio;
        block_t start;
        int i, j, offset;
 
        start = start_sum_block(sbi);
 
-       page = f2fs_get_meta_page(sbi, start++);
-       if (IS_ERR(page))
-               return PTR_ERR(page);
-       kaddr = (unsigned char *)page_address(page);
+       folio = f2fs_get_meta_folio(sbi, start++);
+       if (IS_ERR(folio))
+               return PTR_ERR(folio);
+       kaddr = folio_address(folio);
 
        /* Step 1: restore nat cache */
        seg_i = CURSEG_I(sbi, CURSEG_HOT_DATA);
@@ -4265,17 +4265,16 @@ static int read_compacted_summaries(struct f2fs_sb_info *sbi)
                                                SUM_FOOTER_SIZE)
                                continue;
 
-                       f2fs_put_page(page, 1);
-                       page = NULL;
+                       f2fs_folio_put(folio, true);
 
-                       page = f2fs_get_meta_page(sbi, start++);
-                       if (IS_ERR(page))
-                               return PTR_ERR(page);
-                       kaddr = (unsigned char *)page_address(page);
+                       folio = f2fs_get_meta_folio(sbi, start++);
+                       if (IS_ERR(folio))
+                               return PTR_ERR(folio);
+                       kaddr = folio_address(folio);
                        offset = 0;
                }
        }
-       f2fs_put_page(page, 1);
+       f2fs_folio_put(folio, true);
        return 0;
 }