From: Matthew Wilcox (Oracle) Date: Mon, 31 Mar 2025 20:11:10 +0000 (+0100) Subject: f2fs: Add f2fs_get_new_data_folio() X-Git-Tag: v6.16-rc1~115^2~133 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=48b68943053af00d0c3247eaab8f83bc17d26632;p=thirdparty%2Fkernel%2Flinux.git f2fs: Add f2fs_get_new_data_folio() Convert f2fs_get_new_data_page() into f2fs_get_new_data_folio() and add a f2fs_get_new_data_page() wrapper. 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 5e6638189e78a..173862439b56b 100644 --- a/fs/f2fs/data.c +++ b/fs/f2fs/data.c @@ -1341,7 +1341,7 @@ struct folio *f2fs_get_lock_data_folio(struct inode *inode, pgoff_t index, * Note that, ipage is set only by make_empty_dir, and if any error occur, * ipage should be released by this function. */ -struct page *f2fs_get_new_data_page(struct inode *inode, +struct folio *f2fs_get_new_data_folio(struct inode *inode, struct page *ipage, pgoff_t index, bool new_i_size) { struct address_space *mapping = inode->i_mapping; @@ -1382,13 +1382,13 @@ struct page *f2fs_get_new_data_page(struct inode *inode, f2fs_bug_on(F2FS_I_SB(inode), ipage); folio = f2fs_get_lock_data_folio(inode, index, true); if (IS_ERR(folio)) - return &folio->page; + return folio; } got_it: if (new_i_size && i_size_read(inode) < ((loff_t)(index + 1) << PAGE_SHIFT)) f2fs_i_size_write(inode, ((loff_t)(index + 1) << PAGE_SHIFT)); - return &folio->page; + return folio; } static int __allocate_data_block(struct dnode_of_data *dn, int seg_type) diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h index a5a3210fe1d61..e6a8e8fb42f14 100644 --- a/fs/f2fs/f2fs.h +++ b/fs/f2fs/f2fs.h @@ -3972,7 +3972,7 @@ struct folio *f2fs_find_data_folio(struct inode *inode, pgoff_t index, pgoff_t *next_pgofs); struct folio *f2fs_get_lock_data_folio(struct inode *inode, pgoff_t index, bool for_write); -struct page *f2fs_get_new_data_page(struct inode *inode, +struct folio *f2fs_get_new_data_folio(struct inode *inode, struct page *ipage, pgoff_t index, bool new_i_size); int f2fs_do_write_data_page(struct f2fs_io_info *fio); int f2fs_map_blocks(struct inode *inode, struct f2fs_map_blocks *map, int flag); @@ -3997,6 +3997,13 @@ int f2fs_init_post_read_wq(struct f2fs_sb_info *sbi); void f2fs_destroy_post_read_wq(struct f2fs_sb_info *sbi); extern const struct iomap_ops f2fs_iomap_ops; +static inline +struct page *f2fs_get_new_data_page(struct inode *inode, + struct page *ipage, pgoff_t index, bool new_i_size) +{ + return &f2fs_get_new_data_folio(inode, ipage, index, new_i_size)->page; +} + static inline struct page *f2fs_get_lock_data_page(struct inode *inode, pgoff_t index, bool for_write) {