f2fs: Pass a folio to f2fs_set_link()
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Mon, 31 Mar 2025 20:12:35 +0000 (21:12 +0100)
committerJaegeuk Kim <jaegeuk@kernel.org>
Mon, 28 Apr 2025 15:26:45 +0000 (15:26 +0000)
All callers now have a folio, pass it in.  Removes four 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/dir.c
fs/f2fs/f2fs.h
fs/f2fs/namei.c

index ffa0edd1b7a2fb290b0a044fd3c301b5e1c53cef..04d38f1615d244f01e5f937a5b369d4afc328864 100644 (file)
@@ -427,19 +427,19 @@ ino_t f2fs_inode_by_name(struct inode *dir, const struct qstr *qstr,
 }
 
 void f2fs_set_link(struct inode *dir, struct f2fs_dir_entry *de,
-               struct page *page, struct inode *inode)
+               struct folio *folio, struct inode *inode)
 {
        enum page_type type = f2fs_has_inline_dentry(dir) ? NODE : DATA;
 
-       lock_page(page);
-       f2fs_wait_on_page_writeback(page, type, true, true);
+       folio_lock(folio);
+       f2fs_folio_wait_writeback(folio, type, true, true);
        de->ino = cpu_to_le32(inode->i_ino);
        de->file_type = fs_umode_to_ftype(inode->i_mode);
-       set_page_dirty(page);
+       folio_mark_dirty(folio);
 
        inode_set_mtime_to_ts(dir, inode_set_ctime_current(dir));
        f2fs_mark_inode_dirty_sync(dir, false);
-       f2fs_put_page(page, 1);
+       f2fs_folio_put(folio, true);
 }
 
 static void init_dent_inode(struct inode *dir, struct inode *inode,
index af8990a771529b52c5a3ed35478328c52892fca1..e23249da26109b391baf494697dd1ec5e07d7922 100644 (file)
@@ -3666,7 +3666,7 @@ 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,
-                       struct page *page, struct inode *inode);
+                       struct folio *folio, struct inode *inode);
 bool f2fs_has_enough_room(struct inode *dir, struct folio *ifolio,
                          const struct f2fs_filename *fname);
 void f2fs_update_dentry(nid_t ino, umode_t mode, struct f2fs_dentry_ptr *d,
index 2d91f89cd2b728cbeb7e99764f1e829e7ca4e033..0b231bc74e581a61c98cf93d8db4c8de281e2fe1 100644 (file)
@@ -1007,7 +1007,7 @@ static int f2fs_rename(struct mnt_idmap *idmap, struct inode *old_dir,
                if (err)
                        goto put_out_dir;
 
-               f2fs_set_link(new_dir, new_entry, &new_folio->page, old_inode);
+               f2fs_set_link(new_dir, new_entry, new_folio, old_inode);
                new_folio = NULL;
 
                inode_set_ctime_current(new_inode);
@@ -1064,7 +1064,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_folio->page, new_dir);
+               f2fs_set_link(old_inode, old_dir_entry, old_dir_folio, new_dir);
        if (old_is_dir)
                f2fs_i_links_write(old_dir, false);
 
@@ -1189,14 +1189,14 @@ 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_folio->page, new_dir);
+               f2fs_set_link(old_inode, old_dir_entry, old_dir_folio, new_dir);
 
        /* update ".." directory entry info of new dentry */
        if (new_dir_entry)
-               f2fs_set_link(new_inode, new_dir_entry, &new_dir_folio->page, old_dir);
+               f2fs_set_link(new_inode, new_dir_entry, new_dir_folio, old_dir);
 
        /* update directory entry info of old dir inode */
-       f2fs_set_link(old_dir, old_entry, &old_folio->page, new_inode);
+       f2fs_set_link(old_dir, old_entry, old_folio, new_inode);
 
        f2fs_down_write(&F2FS_I(old_inode)->i_sem);
        if (!old_dir_entry)
@@ -1215,7 +1215,7 @@ static int f2fs_cross_rename(struct inode *old_dir, struct dentry *old_dentry,
        f2fs_mark_inode_dirty_sync(old_dir, false);
 
        /* update directory entry info of new dir inode */
-       f2fs_set_link(new_dir, new_entry, &new_folio->page, old_inode);
+       f2fs_set_link(new_dir, new_entry, new_folio, old_inode);
 
        f2fs_down_write(&F2FS_I(new_inode)->i_sem);
        if (!new_dir_entry)