f2fs: Use a folio in f2fs_encrypt_one_page()
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Mon, 31 Mar 2025 20:12:41 +0000 (21:12 +0100)
committerJaegeuk Kim <jaegeuk@kernel.org>
Mon, 28 Apr 2025 15:26:46 +0000 (15:26 +0000)
Fetch a folio from the page cache instead of a page.  Removes two 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/data.c

index 316c413079ecc9320119bea2c404ee69f94d40db..82743b44324b9534074d0bd08bb0f138382b2469 100644 (file)
@@ -2502,7 +2502,8 @@ static void f2fs_readahead(struct readahead_control *rac)
 int f2fs_encrypt_one_page(struct f2fs_io_info *fio)
 {
        struct inode *inode = fio_inode(fio);
-       struct page *mpage, *page;
+       struct folio *mfolio;
+       struct page *page;
        gfp_t gfp_flags = GFP_NOFS;
 
        if (!f2fs_encrypted_file(inode))
@@ -2527,12 +2528,12 @@ retry_encrypt:
                return PTR_ERR(fio->encrypted_page);
        }
 
-       mpage = find_lock_page(META_MAPPING(fio->sbi), fio->old_blkaddr);
-       if (mpage) {
-               if (PageUptodate(mpage))
-                       memcpy(page_address(mpage),
+       mfolio = filemap_lock_folio(META_MAPPING(fio->sbi), fio->old_blkaddr);
+       if (!IS_ERR(mfolio)) {
+               if (folio_test_uptodate(mfolio))
+                       memcpy(folio_address(mfolio),
                                page_address(fio->encrypted_page), PAGE_SIZE);
-               f2fs_put_page(mpage, 1);
+               f2fs_folio_put(mfolio, true);
        }
        return 0;
 }