]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
f2fs: use f2fs_filemap_get_folio() instead of f2fs_pagecache_get_page()
authorChao Yu <chao@kernel.org>
Tue, 14 Oct 2025 06:27:03 +0000 (14:27 +0800)
committerJaegeuk Kim <jaegeuk@kernel.org>
Thu, 4 Dec 2025 01:55:57 +0000 (01:55 +0000)
Let's use f2fs_filemap_get_folio() instead of f2fs_pagecache_get_page() in
ra_data_block() and move_data_block(), then remove f2fs_pagecache_get_page()
since it has no user.

Signed-off-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
fs/f2fs/f2fs.h
fs/f2fs/gc.c

index b6e35fdd5fd3d42c1d2c6c6eab6744c5ea788858..9cc3b83b8d10c4cbe3e705396bce08443e12f409 100644 (file)
@@ -2961,16 +2961,6 @@ static inline struct folio *f2fs_filemap_get_folio(
        return __filemap_get_folio(mapping, index, fgp_flags, gfp_mask);
 }
 
-static inline struct page *f2fs_pagecache_get_page(
-                               struct address_space *mapping, pgoff_t index,
-                               fgf_t fgp_flags, gfp_t gfp_mask)
-{
-       if (time_to_inject(F2FS_M_SB(mapping), FAULT_PAGE_GET))
-               return NULL;
-
-       return pagecache_get_page(mapping, index, fgp_flags, gfp_mask);
-}
-
 static inline void f2fs_folio_put(struct folio *folio, bool unlock)
 {
        if (IS_ERR_OR_NULL(folio))
index 8abf521530ff3f293148b3c9a634fdb143e1d409..22fe6e2c6d5cda67eaa019ec405fcd9d9f4bb4db 100644 (file)
@@ -1211,7 +1211,7 @@ static int ra_data_block(struct inode *inode, pgoff_t index)
        struct address_space *mapping = f2fs_is_cow_file(inode) ?
                                F2FS_I(inode)->atomic_inode->i_mapping : inode->i_mapping;
        struct dnode_of_data dn;
-       struct folio *folio;
+       struct folio *folio, *efolio;
        struct f2fs_io_info fio = {
                .sbi = sbi,
                .ino = inode->i_ino,
@@ -1266,14 +1266,15 @@ got_it:
 
        f2fs_wait_on_block_writeback(inode, dn.data_blkaddr);
 
-       fio.encrypted_page = f2fs_pagecache_get_page(META_MAPPING(sbi),
-                                       dn.data_blkaddr,
+       efolio = f2fs_filemap_get_folio(META_MAPPING(sbi), dn.data_blkaddr,
                                        FGP_LOCK | FGP_CREAT, GFP_NOFS);
-       if (!fio.encrypted_page) {
-               err = -ENOMEM;
+       if (IS_ERR(efolio)) {
+               err = PTR_ERR(efolio);
                goto put_folio;
        }
 
+       fio.encrypted_page = &efolio->page;
+
        err = f2fs_submit_page_bio(&fio);
        if (err)
                goto put_encrypted_page;
@@ -1313,7 +1314,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 folio *folio, *mfolio;
+       struct folio *folio, *mfolio, *efolio;
        block_t newaddr;
        int err = 0;
        bool lfs_mode = f2fs_lfs_mode(fio.sbi);
@@ -1407,14 +1408,16 @@ static int move_data_block(struct inode *inode, block_t bidx,
                goto up_out;
        }
 
-       fio.encrypted_page = f2fs_pagecache_get_page(META_MAPPING(fio.sbi),
-                               newaddr, FGP_LOCK | FGP_CREAT, GFP_NOFS);
-       if (!fio.encrypted_page) {
-               err = -ENOMEM;
+       efolio = f2fs_filemap_get_folio(META_MAPPING(fio.sbi), newaddr,
+                                       FGP_LOCK | FGP_CREAT, GFP_NOFS);
+       if (IS_ERR(efolio)) {
+               err = PTR_ERR(efolio);
                f2fs_folio_put(mfolio, true);
                goto recover_block;
        }
 
+       fio.encrypted_page = &efolio->page;
+
        /* write target block */
        f2fs_wait_on_page_writeback(fio.encrypted_page, DATA, true, true);
        memcpy(page_address(fio.encrypted_page),