All callers now have a folio so pass it in.  Removes eight calls to
compound_head().

Signed-off-by: Matthew Wilcox (Oracle) <wi...@infradead.org>
---
 fs/f2fs/dir.c      | 26 +++++++++++++-------------
 fs/f2fs/f2fs.h     |  2 +-
 fs/f2fs/namei.c    |  4 ++--
 fs/f2fs/recovery.c |  2 +-
 4 files changed, 17 insertions(+), 17 deletions(-)

diff --git a/fs/f2fs/dir.c b/fs/f2fs/dir.c
index 987b3a00d29d..610091345ac3 100644
--- a/fs/f2fs/dir.c
+++ b/fs/f2fs/dir.c
@@ -860,13 +860,13 @@ void f2fs_drop_nlink(struct inode *dir, struct inode 
*inode)
  * It only removes the dentry from the dentry page, corresponding name
  * entry in name page does not need to be touched during deletion.
  */
-void f2fs_delete_entry(struct f2fs_dir_entry *dentry, struct page *page,
+void f2fs_delete_entry(struct f2fs_dir_entry *dentry, struct folio *folio,
                                        struct inode *dir, struct inode *inode)
 {
-       struct  f2fs_dentry_block *dentry_blk;
+       struct f2fs_dentry_block *dentry_blk;
        unsigned int bit_pos;
        int slots = GET_DENTRY_SLOTS(le16_to_cpu(dentry->name_len));
-       pgoff_t index = page_folio(page)->index;
+       pgoff_t index = folio->index;
        int i;
 
        f2fs_update_time(F2FS_I_SB(dir), REQ_TIME);
@@ -875,12 +875,12 @@ void f2fs_delete_entry(struct f2fs_dir_entry *dentry, 
struct page *page,
                f2fs_add_ino_entry(F2FS_I_SB(dir), dir->i_ino, TRANS_DIR_INO);
 
        if (f2fs_has_inline_dentry(dir))
-               return f2fs_delete_inline_entry(dentry, page, dir, inode);
+               return f2fs_delete_inline_entry(dentry, &folio->page, dir, 
inode);
 
-       lock_page(page);
-       f2fs_wait_on_page_writeback(page, DATA, true, true);
+       folio_lock(folio);
+       f2fs_folio_wait_writeback(folio, DATA, true, true);
 
-       dentry_blk = page_address(page);
+       dentry_blk = folio_address(folio);
        bit_pos = dentry - dentry_blk->dentry;
        for (i = 0; i < slots; i++)
                __clear_bit_le(bit_pos + i, &dentry_blk->dentry_bitmap);
@@ -889,19 +889,19 @@ void f2fs_delete_entry(struct f2fs_dir_entry *dentry, 
struct page *page,
        bit_pos = find_next_bit_le(&dentry_blk->dentry_bitmap,
                        NR_DENTRY_IN_BLOCK,
                        0);
-       set_page_dirty(page);
+       folio_mark_dirty(folio);
 
        if (bit_pos == NR_DENTRY_IN_BLOCK &&
                !f2fs_truncate_hole(dir, index, index + 1)) {
-               f2fs_clear_page_cache_dirty_tag(page_folio(page));
-               clear_page_dirty_for_io(page);
-               ClearPageUptodate(page);
-               clear_page_private_all(page);
+               f2fs_clear_page_cache_dirty_tag(folio);
+               folio_clear_dirty_for_io(folio);
+               folio_clear_uptodate(folio);
+               clear_page_private_all(&folio->page);
 
                inode_dec_dirty_pages(dir);
                f2fs_remove_dirty_inode(dir);
        }
-       f2fs_put_page(page, 1);
+       f2fs_folio_put(folio, true);
 
        inode_set_mtime_to_ts(dir, inode_set_ctime_current(dir));
        f2fs_mark_inode_dirty_sync(dir, false);
diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h
index 66b363dd40ba..6b0f572e1602 100644
--- a/fs/f2fs/f2fs.h
+++ b/fs/f2fs/f2fs.h
@@ -3664,7 +3664,7 @@ int f2fs_add_dentry(struct inode *dir, const struct 
f2fs_filename *fname,
                        struct inode *inode, nid_t ino, umode_t mode);
 int f2fs_do_add_link(struct inode *dir, const struct qstr *name,
                        struct inode *inode, nid_t ino, umode_t mode);
-void f2fs_delete_entry(struct f2fs_dir_entry *dentry, struct page *page,
+void f2fs_delete_entry(struct f2fs_dir_entry *dentry, struct folio *folio,
                        struct inode *dir, struct inode *inode);
 int f2fs_do_tmpfile(struct inode *inode, struct inode *dir,
                                        struct f2fs_filename *fname);
diff --git a/fs/f2fs/namei.c b/fs/f2fs/namei.c
index 689fd9419afd..d8175140e626 100644
--- a/fs/f2fs/namei.c
+++ b/fs/f2fs/namei.c
@@ -578,7 +578,7 @@ static int f2fs_unlink(struct inode *dir, struct dentry 
*dentry)
                f2fs_folio_put(folio, false);
                goto fail;
        }
-       f2fs_delete_entry(de, &folio->page, dir, inode);
+       f2fs_delete_entry(de, folio, dir, inode);
        f2fs_unlock_op(sbi);
 
        /* VFS negative dentries are incompatible with Encoding and
@@ -1038,7 +1038,7 @@ static int f2fs_rename(struct mnt_idmap *idmap, struct 
inode *old_dir,
        inode_set_ctime_current(old_inode);
        f2fs_mark_inode_dirty_sync(old_inode, false);
 
-       f2fs_delete_entry(old_entry, &old_folio->page, old_dir, NULL);
+       f2fs_delete_entry(old_entry, old_folio, old_dir, NULL);
        old_folio = NULL;
 
        if (whiteout) {
diff --git a/fs/f2fs/recovery.c b/fs/f2fs/recovery.c
index 849d014023d4..0dfc60ac0f37 100644
--- a/fs/f2fs/recovery.c
+++ b/fs/f2fs/recovery.c
@@ -212,7 +212,7 @@ static int recover_dentry(struct inode *inode, struct page 
*ipage,
                        iput(einode);
                        goto out_put;
                }
-               f2fs_delete_entry(de, &folio->page, dir, einode);
+               f2fs_delete_entry(de, folio, dir, einode);
                iput(einode);
                goto retry;
        } else if (IS_ERR(folio)) {
-- 
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