From: Matthew Wilcox (Oracle) Date: Mon, 31 Mar 2025 20:11:55 +0000 (+0100) Subject: f2fs: Pass folios to set_new_dnode() X-Git-Tag: v6.16-rc1~115^2~88 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=214235c224dfa518d9628d62d9d7e404b1c8e174;p=thirdparty%2Fkernel%2Flinux.git f2fs: Pass folios to set_new_dnode() Removes a lot of conversions of folios into pages. Signed-off-by: Matthew Wilcox (Oracle) Reviewed-by: Chao Yu Signed-off-by: Jaegeuk Kim --- diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index 13999bca1cfcf..9a66c5f908d44 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -1359,7 +1359,7 @@ struct folio *f2fs_get_new_data_folio(struct inode *inode, return ERR_PTR(-ENOMEM); } - set_new_dnode(&dn, inode, &ifolio->page, NULL, 0); + set_new_dnode(&dn, inode, ifolio, NULL, 0); err = f2fs_reserve_block(&dn, index); if (err) { f2fs_folio_put(folio, true); @@ -3384,7 +3384,7 @@ restart: goto unlock_out; } - set_new_dnode(&dn, inode, &ifolio->page, &ifolio->page, 0); + set_new_dnode(&dn, inode, ifolio, ifolio, 0); if (f2fs_has_inline_data(inode)) { if (pos + len <= MAX_INLINE_DATA(inode)) { @@ -3445,7 +3445,7 @@ static int __find_data_block(struct inode *inode, pgoff_t index, if (IS_ERR(ifolio)) return PTR_ERR(ifolio); - set_new_dnode(&dn, inode, &ifolio->page, &ifolio->page, 0); + set_new_dnode(&dn, inode, ifolio, ifolio, 0); if (!f2fs_lookup_read_extent_cache_block(inode, index, &dn.data_blkaddr)) { @@ -3476,7 +3476,7 @@ static int __reserve_data_block(struct inode *inode, pgoff_t index, err = PTR_ERR(ifolio); goto unlock_out; } - set_new_dnode(&dn, inode, &ifolio->page, &ifolio->page, 0); + set_new_dnode(&dn, inode, ifolio, ifolio, 0); if (!f2fs_lookup_read_extent_cache_block(dn.inode, index, &dn.data_blkaddr)) diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h index 4266971992dd7..601bd3b5a67da 100644 --- a/fs/f2fs/f2fs.h +++ b/fs/f2fs/f2fs.h @@ -1013,12 +1013,12 @@ struct dnode_of_data { }; static inline void set_new_dnode(struct dnode_of_data *dn, struct inode *inode, - struct page *ipage, struct page *npage, nid_t nid) + struct folio *ifolio, struct folio *nfolio, nid_t nid) { memset(dn, 0, sizeof(*dn)); dn->inode = inode; - dn->inode_page = ipage; - dn->node_page = npage; + dn->inode_page = &ifolio->page; + dn->node_page = &nfolio->page; dn->nid = nid; } diff --git a/fs/f2fs/file.c b/fs/f2fs/file.c index 90f5ef72444fd..f8b468f884b48 100644 --- a/fs/f2fs/file.c +++ b/fs/f2fs/file.c @@ -790,7 +790,7 @@ int f2fs_do_truncate_blocks(struct inode *inode, u64 from, bool lock) goto out; } - set_new_dnode(&dn, inode, &ifolio->page, NULL, 0); + set_new_dnode(&dn, inode, ifolio, NULL, 0); err = f2fs_get_dnode_of_data(&dn, free_from, LOOKUP_NODE_RA); if (err) { if (err == -ENOENT) diff --git a/fs/f2fs/inline.c b/fs/f2fs/inline.c index 1bc6a0d61f7e8..7638854bc7d93 100644 --- a/fs/f2fs/inline.c +++ b/fs/f2fs/inline.c @@ -243,7 +243,7 @@ int f2fs_convert_inline_inode(struct inode *inode) goto out; } - set_new_dnode(&dn, inode, &ifolio->page, &ifolio->page, 0); + set_new_dnode(&dn, inode, ifolio, ifolio, 0); if (f2fs_has_inline_data(inode)) err = f2fs_convert_inline_page(&dn, &folio->page); @@ -422,7 +422,7 @@ static int f2fs_move_inline_dirents(struct inode *dir, struct folio *ifolio, return PTR_ERR(folio); } - set_new_dnode(&dn, dir, &ifolio->page, NULL, 0); + set_new_dnode(&dn, dir, ifolio, NULL, 0); err = f2fs_reserve_block(&dn, 0); if (err) goto out; diff --git a/fs/f2fs/node.c b/fs/f2fs/node.c index b186f53d7e02a..4ad7e5c9fd662 100644 --- a/fs/f2fs/node.c +++ b/fs/f2fs/node.c @@ -1156,7 +1156,7 @@ int f2fs_truncate_inode_blocks(struct inode *inode, pgoff_t from) return PTR_ERR(folio); } - set_new_dnode(&dn, inode, &folio->page, NULL, 0); + set_new_dnode(&dn, inode, folio, NULL, 0); folio_unlock(folio); ri = F2FS_INODE(&folio->page); @@ -1252,7 +1252,7 @@ int f2fs_truncate_xattr_node(struct inode *inode) if (IS_ERR(nfolio)) return PTR_ERR(nfolio); - set_new_dnode(&dn, inode, NULL, &nfolio->page, nid); + set_new_dnode(&dn, inode, NULL, nfolio, nid); err = truncate_node(&dn); if (err) { f2fs_folio_put(nfolio, true);