Use f2fs_get_node_folio() to get a folio and use it throughout.  Remove a
few calls to compound_head() and a reference to page->mapping.

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

diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c
index 2d161ddda9c3..e1ed7ccfb690 100644
--- a/fs/f2fs/node.c
+++ b/fs/f2fs/node.c
@@ -1130,7 +1130,7 @@ int f2fs_truncate_inode_blocks(struct inode *inode, 
pgoff_t from)
        unsigned int nofs = 0;
        struct f2fs_inode *ri;
        struct dnode_of_data dn;
-       struct page *page;
+       struct folio *folio;
 
        trace_f2fs_truncate_inode_blocks_enter(inode, from);
 
@@ -1140,16 +1140,16 @@ int f2fs_truncate_inode_blocks(struct inode *inode, 
pgoff_t from)
                return level;
        }
 
-       page = f2fs_get_node_page(sbi, inode->i_ino);
-       if (IS_ERR(page)) {
-               trace_f2fs_truncate_inode_blocks_exit(inode, PTR_ERR(page));
-               return PTR_ERR(page);
+       folio = f2fs_get_node_folio(sbi, inode->i_ino);
+       if (IS_ERR(folio)) {
+               trace_f2fs_truncate_inode_blocks_exit(inode, PTR_ERR(folio));
+               return PTR_ERR(folio);
        }
 
-       set_new_dnode(&dn, inode, page, NULL, 0);
-       unlock_page(page);
+       set_new_dnode(&dn, inode, &folio->page, NULL, 0);
+       folio_unlock(folio);
 
-       ri = F2FS_INODE(page);
+       ri = F2FS_INODE(&folio->page);
        switch (level) {
        case 0:
        case 1:
@@ -1178,7 +1178,7 @@ int f2fs_truncate_inode_blocks(struct inode *inode, 
pgoff_t from)
 
 skip_partial:
        while (cont) {
-               dn.nid = get_nid(page, offset[0], true);
+               dn.nid = get_nid(&folio->page, offset[0], true);
                switch (offset[0]) {
                case NODE_DIR1_BLOCK:
                case NODE_DIR2_BLOCK:
@@ -1199,7 +1199,7 @@ int f2fs_truncate_inode_blocks(struct inode *inode, 
pgoff_t from)
                        BUG();
                }
                if (err == -ENOENT) {
-                       set_sbi_flag(F2FS_P_SB(page), SBI_NEED_FSCK);
+                       set_sbi_flag(F2FS_F_SB(folio), SBI_NEED_FSCK);
                        f2fs_handle_error(sbi, ERROR_INVALID_BLKADDR);
                        f2fs_err_ratelimited(sbi,
                                "truncate node fail, ino:%lu, nid:%u, "
@@ -1210,18 +1210,18 @@ int f2fs_truncate_inode_blocks(struct inode *inode, 
pgoff_t from)
                }
                if (err < 0)
                        goto fail;
-               if (offset[1] == 0 && get_nid(page, offset[0], true)) {
-                       lock_page(page);
-                       BUG_ON(page->mapping != NODE_MAPPING(sbi));
-                       set_nid(page, offset[0], 0, true);
-                       unlock_page(page);
+               if (offset[1] == 0 && get_nid(&folio->page, offset[0], true)) {
+                       folio_lock(folio);
+                       BUG_ON(folio->mapping != NODE_MAPPING(sbi));
+                       set_nid(&folio->page, offset[0], 0, true);
+                       folio_unlock(folio);
                }
                offset[1] = 0;
                offset[0]++;
                nofs += err;
        }
 fail:
-       f2fs_put_page(page, 0);
+       f2fs_folio_put(folio, false);
        trace_f2fs_truncate_inode_blocks_exit(inode, err);
        return err > 0 ? 0 : err;
 }
-- 
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