]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
f2fs: Use a folio in f2fs_ra_meta_pages_cond()
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Mon, 31 Mar 2025 20:10:39 +0000 (21:10 +0100)
committerJaegeuk Kim <jaegeuk@kernel.org>
Mon, 28 Apr 2025 15:26:27 +0000 (15:26 +0000)
Remove a call to find_get_page().  Saves two hidden calls to
compound_head().  Change f2fs_folio_put() to check for IS_ERR_OR_NULL
to handle the case where we got an error pointer back from
filemap_get_folio().

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/checkpoint.c
fs/f2fs/f2fs.h

index ad3fef66ee54c43768f19ce8f1b9e0b919653d33..3fa66bfba100c3f0486dad0d1641848b9755efd6 100644 (file)
@@ -325,16 +325,16 @@ out:
 void f2fs_ra_meta_pages_cond(struct f2fs_sb_info *sbi, pgoff_t index,
                                                        unsigned int ra_blocks)
 {
-       struct page *page;
+       struct folio *folio;
        bool readahead = false;
 
        if (ra_blocks == RECOVERY_MIN_RA_BLOCKS)
                return;
 
-       page = find_get_page(META_MAPPING(sbi), index);
-       if (!page || !PageUptodate(page))
+       folio = filemap_get_folio(META_MAPPING(sbi), index);
+       if (IS_ERR(folio) || !folio_test_uptodate(folio))
                readahead = true;
-       f2fs_put_page(page, 0);
+       f2fs_folio_put(folio, false);
 
        if (readahead)
                f2fs_ra_meta_pages(sbi, index, ra_blocks, META_POR, true);
index 3e9cb3206bbadd0ca71b67750829b358c3d2f395..9915f31ee2d155a9accbd2adb27d1bc7479c5301 100644 (file)
@@ -2885,7 +2885,7 @@ static inline struct page *f2fs_pagecache_get_page(
 
 static inline void f2fs_folio_put(struct folio *folio, bool unlock)
 {
-       if (!folio)
+       if (IS_ERR_OR_NULL(folio))
                return;
 
        if (unlock) {