f2fs: Pass a folio to f2fs_delete_inline_entry()
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Mon, 31 Mar 2025 20:12:30 +0000 (21:12 +0100)
committerJaegeuk Kim <jaegeuk@kernel.org>
Mon, 28 Apr 2025 15:26:44 +0000 (15:26 +0000)
The caller now has a folio so 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/inline.c

index 3f271cdaac9bbf99152bb17ab46e50a1d44f74f6..363b44b1f8b72d1bfca2f7e6da14cea2930d65a5 100644 (file)
@@ -876,7 +876,7 @@ void f2fs_delete_entry(struct f2fs_dir_entry *dentry, struct folio *folio,
                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, &folio->page, dir, inode);
+               return f2fs_delete_inline_entry(dentry, folio, dir, inode);
 
        folio_lock(folio);
        f2fs_folio_wait_writeback(folio, DATA, true, true);
index f0d6ad71432fb63da2dd093645ea040b4ab51f49..7e5000248758bf78e802cee9b30159fd4b26b5b9 100644 (file)
@@ -4303,8 +4303,7 @@ int f2fs_make_empty_inline_dir(struct inode *inode, struct inode *parent,
 int f2fs_add_inline_entry(struct inode *dir, const struct f2fs_filename *fname,
                        struct inode *inode, nid_t ino, umode_t mode);
 void f2fs_delete_inline_entry(struct f2fs_dir_entry *dentry,
-                               struct page *page, struct inode *dir,
-                               struct inode *inode);
+               struct folio *folio, struct inode *dir, struct inode *inode);
 bool f2fs_empty_inline_dir(struct inode *dir);
 int f2fs_read_inline_dir(struct file *file, struct dir_context *ctx,
                        struct fscrypt_str *fstr);
index c2e97e230cd1d13f4fdf0985206fa630ce3b9b6c..1c6dc9731f2a63a23739859a5ed75ea9b10417b9 100644 (file)
@@ -697,8 +697,8 @@ out:
        return err;
 }
 
-void f2fs_delete_inline_entry(struct f2fs_dir_entry *dentry, struct page *page,
-                                       struct inode *dir, struct inode *inode)
+void f2fs_delete_inline_entry(struct f2fs_dir_entry *dentry,
+               struct folio *folio, struct inode *dir, struct inode *inode)
 {
        struct f2fs_dentry_ptr d;
        void *inline_dentry;
@@ -706,18 +706,18 @@ void f2fs_delete_inline_entry(struct f2fs_dir_entry *dentry, struct page *page,
        unsigned int bit_pos;
        int i;
 
-       lock_page(page);
-       f2fs_wait_on_page_writeback(page, NODE, true, true);
+       folio_lock(folio);
+       f2fs_folio_wait_writeback(folio, NODE, true, true);
 
-       inline_dentry = inline_data_addr(dir, page);
+       inline_dentry = inline_data_addr(dir, &folio->page);
        make_dentry_ptr_inline(dir, &d, inline_dentry);
 
        bit_pos = dentry - d.dentry;
        for (i = 0; i < slots; i++)
                __clear_bit_le(bit_pos + i, d.bitmap);
 
-       set_page_dirty(page);
-       f2fs_put_page(page, 1);
+       folio_mark_dirty(folio);
+       f2fs_folio_put(folio, true);
 
        inode_set_mtime_to_ts(dir, inode_set_ctime_current(dir));
        f2fs_mark_inode_dirty_sync(dir, false);