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

index 4eccaa0a4863a3c1dd778c769afeab6eb942f5be..beed738769334aa2f426e59f65a87df9da7e2062 100644 (file)
@@ -4288,8 +4288,8 @@ bool f2fs_may_inline_data(struct inode *inode);
 bool f2fs_sanity_check_inline_data(struct inode *inode, struct page *ipage);
 bool f2fs_may_inline_dentry(struct inode *inode);
 void f2fs_do_read_inline_data(struct folio *folio, struct folio *ifolio);
-void f2fs_truncate_inline_inode(struct inode *inode,
-                                               struct page *ipage, u64 from);
+void f2fs_truncate_inline_inode(struct inode *inode, struct folio *ifolio,
+               u64 from);
 int f2fs_read_inline_data(struct inode *inode, struct folio *folio);
 int f2fs_convert_inline_folio(struct dnode_of_data *dn, struct folio *folio);
 int f2fs_convert_inline_inode(struct inode *inode);
index f8b468f884b48adc303d7befa72d917ebac20570..b98451073bf7bc62a03dd182661d9eb150b3f5f4 100644 (file)
@@ -784,7 +784,7 @@ int f2fs_do_truncate_blocks(struct inode *inode, u64 from, bool lock)
        }
 
        if (f2fs_has_inline_data(inode)) {
-               f2fs_truncate_inline_inode(inode, &ifolio->page, from);
+               f2fs_truncate_inline_inode(inode, ifolio, from);
                f2fs_folio_put(ifolio, true);
                truncate_page = true;
                goto out;
index 39b936be6ca8417208c41f92078490bb53c3fd2f..bce99af7f4ef95ac419f1500924231b944c9acc5 100644 (file)
@@ -97,19 +97,19 @@ void f2fs_do_read_inline_data(struct folio *folio, struct folio *ifolio)
                folio_mark_uptodate(folio);
 }
 
-void f2fs_truncate_inline_inode(struct inode *inode,
-                                       struct page *ipage, u64 from)
+void f2fs_truncate_inline_inode(struct inode *inode, struct folio *ifolio,
+               u64 from)
 {
        void *addr;
 
        if (from >= MAX_INLINE_DATA(inode))
                return;
 
-       addr = inline_data_addr(inode, ipage);
+       addr = inline_data_addr(inode, &ifolio->page);
 
-       f2fs_wait_on_page_writeback(ipage, NODE, true, true);
+       f2fs_folio_wait_writeback(ifolio, NODE, true, true);
        memset(addr + from, 0, MAX_INLINE_DATA(inode) - from);
-       set_page_dirty(ipage);
+       folio_mark_dirty(ifolio);
 
        if (from == 0)
                clear_inode_flag(inode, FI_DATA_EXIST);
@@ -205,7 +205,7 @@ int f2fs_convert_inline_folio(struct dnode_of_data *dn, struct folio *folio)
        set_inode_flag(dn->inode, FI_APPEND_WRITE);
 
        /* clear inline data and flag after data writeback */
-       f2fs_truncate_inline_inode(dn->inode, &dn->inode_folio->page, 0);
+       f2fs_truncate_inline_inode(dn->inode, dn->inode_folio, 0);
        clear_page_private_inline(&dn->inode_folio->page);
 clear_out:
        stat_dec_inline_inode(dn->inode);
@@ -334,7 +334,7 @@ process_inline:
                struct folio *ifolio = f2fs_get_inode_folio(sbi, inode->i_ino);
                if (IS_ERR(ifolio))
                        return PTR_ERR(ifolio);
-               f2fs_truncate_inline_inode(inode, &ifolio->page, 0);
+               f2fs_truncate_inline_inode(inode, ifolio, 0);
                stat_dec_inline_inode(inode);
                clear_inode_flag(inode, FI_INLINE_DATA);
                f2fs_folio_put(ifolio, true);
@@ -460,7 +460,7 @@ static int f2fs_move_inline_dirents(struct inode *dir, struct folio *ifolio,
        folio_mark_dirty(folio);
 
        /* clear inline dir and flag after data writeback */
-       f2fs_truncate_inline_inode(dir, &ifolio->page, 0);
+       f2fs_truncate_inline_inode(dir, ifolio, 0);
 
        stat_dec_inline_dir(dir);
        clear_inode_flag(dir, FI_INLINE_DENTRY);
@@ -547,7 +547,7 @@ static int f2fs_move_rehashed_dirents(struct inode *dir, struct folio *ifolio,
        }
 
        memcpy(backup_dentry, inline_dentry, MAX_INLINE_DATA(dir));
-       f2fs_truncate_inline_inode(dir, &ifolio->page, 0);
+       f2fs_truncate_inline_inode(dir, ifolio, 0);
 
        folio_unlock(ifolio);