Fetch a folio from the page cache instead of a page.  Removes two calls
to compound_head().

Signed-off-by: Matthew Wilcox (Oracle) <wi...@infradead.org>
---
 fs/f2fs/data.c | 13 +++++++------
 1 file changed, 7 insertions(+), 6 deletions(-)

diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c
index 8980b77bfdab..d67731f042cf 100644
--- a/fs/f2fs/data.c
+++ b/fs/f2fs/data.c
@@ -2503,7 +2503,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))
@@ -2528,12 +2529,12 @@ int f2fs_encrypt_one_page(struct f2fs_io_info *fio)
                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;
 }
-- 
2.47.2



_______________________________________________
Linux-f2fs-devel mailing list
Linux-f2fs-devel@lists.sourceforge.net
https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

Reply via email to