Convert all the callers to pass a folio.  Removes three calls to
compound_head().

Signed-off-by: Matthew Wilcox (Oracle) <wi...@infradead.org>
---
 fs/f2fs/dir.c   |  7 ++-----
 fs/f2fs/f2fs.h  |  2 +-
 fs/f2fs/namei.c | 34 +++++++++++++++++-----------------
 3 files changed, 20 insertions(+), 23 deletions(-)

diff --git a/fs/f2fs/dir.c b/fs/f2fs/dir.c
index 9f958c379e20..987b3a00d29d 100644
--- a/fs/f2fs/dir.c
+++ b/fs/f2fs/dir.c
@@ -405,12 +405,9 @@ struct f2fs_dir_entry *f2fs_find_entry(struct inode *dir,
        return de;
 }
 
-struct f2fs_dir_entry *f2fs_parent_dir(struct inode *dir, struct page **p)
+struct f2fs_dir_entry *f2fs_parent_dir(struct inode *dir, struct folio **f)
 {
-       struct folio *folio;
-       struct f2fs_dir_entry *r = f2fs_find_entry(dir, &dotdot_name, &folio);
-       *p = &folio->page;
-       return r;
+       return f2fs_find_entry(dir, &dotdot_name, f);
 }
 
 ino_t f2fs_inode_by_name(struct inode *dir, const struct qstr *qstr,
diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h
index a7a8bae1dabe..66b363dd40ba 100644
--- a/fs/f2fs/f2fs.h
+++ b/fs/f2fs/f2fs.h
@@ -3648,7 +3648,7 @@ struct f2fs_dir_entry *__f2fs_find_entry(struct inode 
*dir,
                const struct f2fs_filename *fname, struct folio **res_folio);
 struct f2fs_dir_entry *f2fs_find_entry(struct inode *dir,
                        const struct qstr *child, struct folio **res_folio);
-struct f2fs_dir_entry *f2fs_parent_dir(struct inode *dir, struct page **p);
+struct f2fs_dir_entry *f2fs_parent_dir(struct inode *dir, struct folio **f);
 ino_t f2fs_inode_by_name(struct inode *dir, const struct qstr *qstr,
                        struct folio **folio);
 void f2fs_set_link(struct inode *dir, struct f2fs_dir_entry *de,
diff --git a/fs/f2fs/namei.c b/fs/f2fs/namei.c
index 1a2f9bde1c11..689fd9419afd 100644
--- a/fs/f2fs/namei.c
+++ b/fs/f2fs/namei.c
@@ -899,7 +899,7 @@ static int f2fs_rename(struct mnt_idmap *idmap, struct 
inode *old_dir,
        struct inode *old_inode = d_inode(old_dentry);
        struct inode *new_inode = d_inode(new_dentry);
        struct inode *whiteout = NULL;
-       struct page *old_dir_page = NULL;
+       struct folio *old_dir_folio = NULL;
        struct folio *old_folio, *new_folio = NULL;
        struct f2fs_dir_entry *old_dir_entry = NULL;
        struct f2fs_dir_entry *old_entry;
@@ -967,10 +967,10 @@ static int f2fs_rename(struct mnt_idmap *idmap, struct 
inode *old_dir,
        }
 
        if (old_is_dir && old_dir != new_dir) {
-               old_dir_entry = f2fs_parent_dir(old_inode, &old_dir_page);
+               old_dir_entry = f2fs_parent_dir(old_inode, &old_dir_folio);
                if (!old_dir_entry) {
-                       if (IS_ERR(old_dir_page))
-                               err = PTR_ERR(old_dir_page);
+                       if (IS_ERR(old_dir_folio))
+                               err = PTR_ERR(old_dir_folio);
                        goto out_old;
                }
        }
@@ -1055,7 +1055,7 @@ static int f2fs_rename(struct mnt_idmap *idmap, struct 
inode *old_dir,
        }
 
        if (old_dir_entry)
-               f2fs_set_link(old_inode, old_dir_entry, old_dir_page, new_dir);
+               f2fs_set_link(old_inode, old_dir_entry, &old_dir_folio->page, 
new_dir);
        if (old_is_dir)
                f2fs_i_links_write(old_dir, false);
 
@@ -1079,7 +1079,7 @@ static int f2fs_rename(struct mnt_idmap *idmap, struct 
inode *old_dir,
        f2fs_folio_put(new_folio, false);
 out_dir:
        if (old_dir_entry)
-               f2fs_put_page(old_dir_page, 0);
+               f2fs_folio_put(old_dir_folio, false);
 out_old:
        f2fs_folio_put(old_folio, false);
 out:
@@ -1093,7 +1093,7 @@ static int f2fs_cross_rename(struct inode *old_dir, 
struct dentry *old_dentry,
        struct f2fs_sb_info *sbi = F2FS_I_SB(old_dir);
        struct inode *old_inode = d_inode(old_dentry);
        struct inode *new_inode = d_inode(new_dentry);
-       struct page *old_dir_page, *new_dir_page;
+       struct folio *old_dir_folio, *new_dir_folio;
        struct folio *old_folio, *new_folio;
        struct f2fs_dir_entry *old_dir_entry = NULL, *new_dir_entry = NULL;
        struct f2fs_dir_entry *old_entry, *new_entry;
@@ -1140,20 +1140,20 @@ static int f2fs_cross_rename(struct inode *old_dir, 
struct dentry *old_dentry,
        if (old_dir != new_dir) {
                if (S_ISDIR(old_inode->i_mode)) {
                        old_dir_entry = f2fs_parent_dir(old_inode,
-                                                       &old_dir_page);
+                                                       &old_dir_folio);
                        if (!old_dir_entry) {
-                               if (IS_ERR(old_dir_page))
-                                       err = PTR_ERR(old_dir_page);
+                               if (IS_ERR(old_dir_folio))
+                                       err = PTR_ERR(old_dir_folio);
                                goto out_new;
                        }
                }
 
                if (S_ISDIR(new_inode->i_mode)) {
                        new_dir_entry = f2fs_parent_dir(new_inode,
-                                                       &new_dir_page);
+                                                       &new_dir_folio);
                        if (!new_dir_entry) {
-                               if (IS_ERR(new_dir_page))
-                                       err = PTR_ERR(new_dir_page);
+                               if (IS_ERR(new_dir_folio))
+                                       err = PTR_ERR(new_dir_folio);
                                goto out_old_dir;
                        }
                }
@@ -1180,11 +1180,11 @@ static int f2fs_cross_rename(struct inode *old_dir, 
struct dentry *old_dentry,
 
        /* update ".." directory entry info of old dentry */
        if (old_dir_entry)
-               f2fs_set_link(old_inode, old_dir_entry, old_dir_page, new_dir);
+               f2fs_set_link(old_inode, old_dir_entry, &old_dir_folio->page, 
new_dir);
 
        /* update ".." directory entry info of new dentry */
        if (new_dir_entry)
-               f2fs_set_link(new_inode, new_dir_entry, new_dir_page, old_dir);
+               f2fs_set_link(new_inode, new_dir_entry, &new_dir_folio->page, 
old_dir);
 
        /* update directory entry info of old dir inode */
        f2fs_set_link(old_dir, old_entry, &old_folio->page, new_inode);
@@ -1238,11 +1238,11 @@ static int f2fs_cross_rename(struct inode *old_dir, 
struct dentry *old_dentry,
        return 0;
 out_new_dir:
        if (new_dir_entry) {
-               f2fs_put_page(new_dir_page, 0);
+               f2fs_folio_put(new_dir_folio, 0);
        }
 out_old_dir:
        if (old_dir_entry) {
-               f2fs_put_page(old_dir_page, 0);
+               f2fs_folio_put(old_dir_folio, 0);
        }
 out_new:
        f2fs_folio_put(new_folio, false);
-- 
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