mirror of https://github.com/torvalds/linux.git
f2fs: Use a folio in f2fs_add_inline_entry()
Also convert f2fs_init_inode_metadata() to take a folio. Remove 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
869521352d
commit
9283b58a14
|
|
@ -516,7 +516,7 @@ static int make_empty_dir(struct inode *inode,
|
|||
}
|
||||
|
||||
struct page *f2fs_init_inode_metadata(struct inode *inode, struct inode *dir,
|
||||
const struct f2fs_filename *fname, struct page *dpage)
|
||||
const struct f2fs_filename *fname, struct folio *dfolio)
|
||||
{
|
||||
struct folio *folio;
|
||||
int err;
|
||||
|
|
@ -537,7 +537,7 @@ struct page *f2fs_init_inode_metadata(struct inode *inode, struct inode *dir,
|
|||
folio_put(folio);
|
||||
}
|
||||
|
||||
err = f2fs_init_acl(inode, dir, &folio->page, dpage);
|
||||
err = f2fs_init_acl(inode, dir, &folio->page, &dfolio->page);
|
||||
if (err)
|
||||
goto put_error;
|
||||
|
||||
|
|
|
|||
|
|
@ -3653,7 +3653,7 @@ int f2fs_fill_dentries(struct dir_context *ctx, struct f2fs_dentry_ptr *d,
|
|||
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,
|
||||
const struct f2fs_filename *fname, struct page *dpage);
|
||||
const struct f2fs_filename *fname, struct folio *dfolio);
|
||||
void f2fs_update_parent_metadata(struct inode *dir, struct inode *inode,
|
||||
unsigned int current_depth);
|
||||
int f2fs_room_for_filename(const void *bitmap, int slots, int max_slots);
|
||||
|
|
|
|||
|
|
@ -636,7 +636,7 @@ int f2fs_add_inline_entry(struct inode *dir, const struct f2fs_filename *fname,
|
|||
struct inode *inode, nid_t ino, umode_t mode)
|
||||
{
|
||||
struct f2fs_sb_info *sbi = F2FS_I_SB(dir);
|
||||
struct page *ipage;
|
||||
struct folio *ifolio;
|
||||
unsigned int bit_pos;
|
||||
void *inline_dentry = NULL;
|
||||
struct f2fs_dentry_ptr d;
|
||||
|
|
@ -644,16 +644,16 @@ int f2fs_add_inline_entry(struct inode *dir, const struct f2fs_filename *fname,
|
|||
struct page *page = NULL;
|
||||
int err = 0;
|
||||
|
||||
ipage = f2fs_get_inode_page(sbi, dir->i_ino);
|
||||
if (IS_ERR(ipage))
|
||||
return PTR_ERR(ipage);
|
||||
ifolio = f2fs_get_inode_folio(sbi, dir->i_ino);
|
||||
if (IS_ERR(ifolio))
|
||||
return PTR_ERR(ifolio);
|
||||
|
||||
inline_dentry = inline_data_addr(dir, ipage);
|
||||
inline_dentry = inline_data_addr(dir, &ifolio->page);
|
||||
make_dentry_ptr_inline(dir, &d, inline_dentry);
|
||||
|
||||
bit_pos = f2fs_room_for_filename(d.bitmap, slots, d.max);
|
||||
if (bit_pos >= d.max) {
|
||||
err = do_convert_inline_dir(dir, ipage, inline_dentry);
|
||||
err = do_convert_inline_dir(dir, &ifolio->page, inline_dentry);
|
||||
if (err)
|
||||
return err;
|
||||
err = -EAGAIN;
|
||||
|
|
@ -663,19 +663,19 @@ 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, ipage);
|
||||
page = f2fs_init_inode_metadata(inode, dir, fname, ifolio);
|
||||
if (IS_ERR(page)) {
|
||||
err = PTR_ERR(page);
|
||||
goto fail;
|
||||
}
|
||||
}
|
||||
|
||||
f2fs_wait_on_page_writeback(ipage, NODE, true, true);
|
||||
f2fs_folio_wait_writeback(ifolio, NODE, true, true);
|
||||
|
||||
f2fs_update_dentry(ino, mode, &d, &fname->disk_name, fname->hash,
|
||||
bit_pos);
|
||||
|
||||
set_page_dirty(ipage);
|
||||
folio_mark_dirty(ifolio);
|
||||
|
||||
/* we don't need to mark_inode_dirty now */
|
||||
if (inode) {
|
||||
|
|
@ -693,7 +693,7 @@ int f2fs_add_inline_entry(struct inode *dir, const struct f2fs_filename *fname,
|
|||
if (inode)
|
||||
f2fs_up_write(&F2FS_I(inode)->i_sem);
|
||||
out:
|
||||
f2fs_put_page(ipage, 1);
|
||||
f2fs_folio_put(ifolio, true);
|
||||
return err;
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue