mirror of
https://github.com/torvalds/linux.git
synced 2026-05-23 14:42:08 +02:00
f2fs: Return a folio from f2fs_init_inode_metadata()
Convert all three callers to handle a folio return. Remove three calls 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>
This commit is contained in:
parent
398c7df7bc
commit
a6d26d5c75
|
|
@ -515,7 +515,7 @@ static int make_empty_dir(struct inode *inode,
|
|||
return 0;
|
||||
}
|
||||
|
||||
struct page *f2fs_init_inode_metadata(struct inode *inode, struct inode *dir,
|
||||
struct folio *f2fs_init_inode_metadata(struct inode *inode, struct inode *dir,
|
||||
const struct f2fs_filename *fname, struct folio *dfolio)
|
||||
{
|
||||
struct folio *folio;
|
||||
|
|
@ -524,7 +524,7 @@ struct page *f2fs_init_inode_metadata(struct inode *inode, struct inode *dir,
|
|||
if (is_inode_flag_set(inode, FI_NEW_INODE)) {
|
||||
folio = f2fs_new_inode_folio(inode);
|
||||
if (IS_ERR(folio))
|
||||
return &folio->page;
|
||||
return folio;
|
||||
|
||||
if (S_ISDIR(inode->i_mode)) {
|
||||
/* in order to handle error case */
|
||||
|
|
@ -555,7 +555,7 @@ struct page *f2fs_init_inode_metadata(struct inode *inode, struct inode *dir,
|
|||
} else {
|
||||
folio = f2fs_get_inode_folio(F2FS_I_SB(dir), inode->i_ino);
|
||||
if (IS_ERR(folio))
|
||||
return &folio->page;
|
||||
return folio;
|
||||
}
|
||||
|
||||
init_dent_inode(dir, inode, fname, folio);
|
||||
|
|
@ -575,7 +575,7 @@ struct page *f2fs_init_inode_metadata(struct inode *inode, struct inode *dir,
|
|||
f2fs_remove_orphan_inode(F2FS_I_SB(dir), inode->i_ino);
|
||||
f2fs_i_links_write(inode, true);
|
||||
}
|
||||
return &folio->page;
|
||||
return folio;
|
||||
|
||||
put_error:
|
||||
clear_nlink(inode);
|
||||
|
|
@ -669,7 +669,7 @@ int f2fs_add_regular_entry(struct inode *dir, const struct f2fs_filename *fname,
|
|||
struct folio *dentry_folio = NULL;
|
||||
struct f2fs_dentry_block *dentry_blk = NULL;
|
||||
struct f2fs_dentry_ptr d;
|
||||
struct page *page = NULL;
|
||||
struct folio *folio = NULL;
|
||||
int slots, err = 0;
|
||||
|
||||
level = 0;
|
||||
|
|
@ -720,9 +720,9 @@ int f2fs_add_regular_entry(struct inode *dir, const struct f2fs_filename *fname,
|
|||
|
||||
if (inode) {
|
||||
f2fs_down_write(&F2FS_I(inode)->i_sem);
|
||||
page = f2fs_init_inode_metadata(inode, dir, fname, NULL);
|
||||
if (IS_ERR(page)) {
|
||||
err = PTR_ERR(page);
|
||||
folio = f2fs_init_inode_metadata(inode, dir, fname, NULL);
|
||||
if (IS_ERR(folio)) {
|
||||
err = PTR_ERR(folio);
|
||||
goto fail;
|
||||
}
|
||||
}
|
||||
|
|
@ -738,9 +738,9 @@ int f2fs_add_regular_entry(struct inode *dir, const struct f2fs_filename *fname,
|
|||
|
||||
/* synchronize inode page's data from inode cache */
|
||||
if (is_inode_flag_set(inode, FI_NEW_INODE))
|
||||
f2fs_update_inode(inode, page);
|
||||
f2fs_update_inode(inode, &folio->page);
|
||||
|
||||
f2fs_put_page(page, 1);
|
||||
f2fs_folio_put(folio, true);
|
||||
}
|
||||
|
||||
f2fs_update_parent_metadata(dir, inode, current_depth);
|
||||
|
|
@ -816,16 +816,16 @@ int f2fs_do_add_link(struct inode *dir, const struct qstr *name,
|
|||
int f2fs_do_tmpfile(struct inode *inode, struct inode *dir,
|
||||
struct f2fs_filename *fname)
|
||||
{
|
||||
struct page *page;
|
||||
struct folio *folio;
|
||||
int err = 0;
|
||||
|
||||
f2fs_down_write(&F2FS_I(inode)->i_sem);
|
||||
page = f2fs_init_inode_metadata(inode, dir, fname, NULL);
|
||||
if (IS_ERR(page)) {
|
||||
err = PTR_ERR(page);
|
||||
folio = f2fs_init_inode_metadata(inode, dir, fname, NULL);
|
||||
if (IS_ERR(folio)) {
|
||||
err = PTR_ERR(folio);
|
||||
goto fail;
|
||||
}
|
||||
f2fs_put_page(page, 1);
|
||||
f2fs_folio_put(folio, true);
|
||||
|
||||
clear_inode_flag(inode, FI_NEW_INODE);
|
||||
f2fs_update_time(F2FS_I_SB(inode), REQ_TIME);
|
||||
|
|
|
|||
|
|
@ -3662,7 +3662,7 @@ int f2fs_fill_dentries(struct dir_context *ctx, struct f2fs_dentry_ptr *d,
|
|||
unsigned int start_pos, struct fscrypt_str *fstr);
|
||||
void f2fs_do_make_empty_dir(struct inode *inode, struct inode *parent,
|
||||
struct f2fs_dentry_ptr *d);
|
||||
struct page *f2fs_init_inode_metadata(struct inode *inode, struct inode *dir,
|
||||
struct folio *f2fs_init_inode_metadata(struct inode *inode, struct inode *dir,
|
||||
const struct f2fs_filename *fname, struct folio *dfolio);
|
||||
void f2fs_update_parent_metadata(struct inode *dir, struct inode *inode,
|
||||
unsigned int current_depth);
|
||||
|
|
|
|||
|
|
@ -641,7 +641,7 @@ int f2fs_add_inline_entry(struct inode *dir, const struct f2fs_filename *fname,
|
|||
void *inline_dentry = NULL;
|
||||
struct f2fs_dentry_ptr d;
|
||||
int slots = GET_DENTRY_SLOTS(fname->disk_name.len);
|
||||
struct page *page = NULL;
|
||||
struct folio *folio = NULL;
|
||||
int err = 0;
|
||||
|
||||
ifolio = f2fs_get_inode_folio(sbi, dir->i_ino);
|
||||
|
|
@ -663,9 +663,9 @@ int f2fs_add_inline_entry(struct inode *dir, const struct f2fs_filename *fname,
|
|||
if (inode) {
|
||||
f2fs_down_write_nested(&F2FS_I(inode)->i_sem,
|
||||
SINGLE_DEPTH_NESTING);
|
||||
page = f2fs_init_inode_metadata(inode, dir, fname, ifolio);
|
||||
if (IS_ERR(page)) {
|
||||
err = PTR_ERR(page);
|
||||
folio = f2fs_init_inode_metadata(inode, dir, fname, ifolio);
|
||||
if (IS_ERR(folio)) {
|
||||
err = PTR_ERR(folio);
|
||||
goto fail;
|
||||
}
|
||||
}
|
||||
|
|
@ -683,9 +683,9 @@ int f2fs_add_inline_entry(struct inode *dir, const struct f2fs_filename *fname,
|
|||
|
||||
/* synchronize inode page's data from inode cache */
|
||||
if (is_inode_flag_set(inode, FI_NEW_INODE))
|
||||
f2fs_update_inode(inode, page);
|
||||
f2fs_update_inode(inode, &folio->page);
|
||||
|
||||
f2fs_put_page(page, 1);
|
||||
f2fs_folio_put(folio, true);
|
||||
}
|
||||
|
||||
f2fs_update_parent_metadata(dir, inode, 0);
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user