diff options
| author | Matthew Wilcox (Oracle) <willy@infradead.org> | 2025-03-31 21:11:10 +0100 |
|---|---|---|
| committer | Jaegeuk Kim <jaegeuk@kernel.org> | 2025-04-28 15:26:33 +0000 |
| commit | 48b68943053af00d0c3247eaab8f83bc17d26632 (patch) | |
| tree | 1f3f1107d116f474a6b5440ef3fedda27409a472 | |
| parent | 38f273c5049d5dd3b515200f7f57f1f632489076 (diff) | |
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) <willy@infradead.org>
Reviewed-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
| -rw-r--r-- | fs/f2fs/data.c | 6 | ||||
| -rw-r--r-- | fs/f2fs/f2fs.h | 9 |
2 files changed, 11 insertions, 4 deletions
diff --git a/fs/f2fs/data.c b/fs/f2fs/data.c index 5e6638189e78..173862439b56 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 a5a3210fe1d6..e6a8e8fb42f1 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) { |
