f2fs: Pass a folio to f2fs_recover_inline_xattr()
authorMatthew Wilcox (Oracle) <willy@infradead.org>
Mon, 31 Mar 2025 20:12:18 +0000 (21:12 +0100)
committerJaegeuk Kim <jaegeuk@kernel.org>
Mon, 28 Apr 2025 15:26:43 +0000 (15:26 +0000)
The caller has a folio, so pass it in.

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/node.c
fs/f2fs/recovery.c

index f1d7002fcd2ca7e631ea725c16f7952ac2cacce8..48dee2817e43763dbedd16f2103a8f323e3f9440 100644 (file)
@@ -3759,7 +3759,7 @@ bool f2fs_alloc_nid(struct f2fs_sb_info *sbi, nid_t *nid);
 void f2fs_alloc_nid_done(struct f2fs_sb_info *sbi, nid_t nid);
 void f2fs_alloc_nid_failed(struct f2fs_sb_info *sbi, nid_t nid);
 int f2fs_try_to_free_nids(struct f2fs_sb_info *sbi, int nr_shrink);
-int f2fs_recover_inline_xattr(struct inode *inode, struct page *page);
+int f2fs_recover_inline_xattr(struct inode *inode, struct folio *folio);
 int f2fs_recover_xattr_data(struct inode *inode, struct page *page);
 int f2fs_recover_inode_page(struct f2fs_sb_info *sbi, struct page *page);
 int f2fs_restore_node_summary(struct f2fs_sb_info *sbi,
index 57b72c32bba5115df08bc8e01911475febc9b74e..2b989135defe36d136e7f21a4905cf969bb718c8 100644 (file)
@@ -2711,7 +2711,7 @@ int f2fs_try_to_free_nids(struct f2fs_sb_info *sbi, int nr_shrink)
        return nr - nr_shrink;
 }
 
-int f2fs_recover_inline_xattr(struct inode *inode, struct page *page)
+int f2fs_recover_inline_xattr(struct inode *inode, struct folio *folio)
 {
        void *src_addr, *dst_addr;
        size_t inline_size;
@@ -2722,7 +2722,7 @@ int f2fs_recover_inline_xattr(struct inode *inode, struct page *page)
        if (IS_ERR(ifolio))
                return PTR_ERR(ifolio);
 
-       ri = F2FS_INODE(page);
+       ri = F2FS_INODE(&folio->page);
        if (ri->i_inline & F2FS_INLINE_XATTR) {
                if (!f2fs_has_inline_xattr(inode)) {
                        set_inode_flag(inode, FI_INLINE_XATTR);
@@ -2737,7 +2737,7 @@ int f2fs_recover_inline_xattr(struct inode *inode, struct page *page)
        }
 
        dst_addr = inline_xattr_addr(inode, &ifolio->page);
-       src_addr = inline_xattr_addr(inode, page);
+       src_addr = inline_xattr_addr(inode, &folio->page);
        inline_size = inline_xattr_size(inode);
 
        f2fs_folio_wait_writeback(ifolio, NODE, true, true);
index 8f8a6b2331a6e27de70e122450ba27002f75b320..ac8f2d0763a43bff930499ffa4bd6b290052bdca 100644 (file)
@@ -629,7 +629,7 @@ static int do_recover_data(struct f2fs_sb_info *sbi, struct inode *inode,
 
        /* step 1: recover xattr */
        if (IS_INODE(&folio->page)) {
-               err = f2fs_recover_inline_xattr(inode, &folio->page);
+               err = f2fs_recover_inline_xattr(inode, folio);
                if (err)
                        goto out;
        } else if (f2fs_has_xattr_block(ofs_of_node(&folio->page))) {