Lines Matching refs:inode
16 bool f2fs_may_inline(struct inode *inode) in f2fs_may_inline() argument
18 if (!test_opt(F2FS_I_SB(inode), INLINE_DATA)) in f2fs_may_inline()
21 if (f2fs_is_atomic_file(inode)) in f2fs_may_inline()
24 if (!S_ISREG(inode->i_mode) && !S_ISLNK(inode->i_mode)) in f2fs_may_inline()
27 if (i_size_read(inode) > MAX_INLINE_DATA) in f2fs_may_inline()
68 int f2fs_read_inline_data(struct inode *inode, struct page *page) in f2fs_read_inline_data() argument
72 ipage = get_node_page(F2FS_I_SB(inode), inode->i_ino); in f2fs_read_inline_data()
78 if (!f2fs_has_inline_data(inode)) { in f2fs_read_inline_data()
103 f2fs_bug_on(F2FS_I_SB(dn->inode), page->index); in f2fs_convert_inline_page()
105 if (!f2fs_exist_data(dn->inode)) in f2fs_convert_inline_page()
138 inode_dec_dirty_pages(dn->inode); in f2fs_convert_inline_page()
141 set_inode_flag(F2FS_I(dn->inode), FI_APPEND_WRITE); in f2fs_convert_inline_page()
146 stat_dec_inline_inode(dn->inode); in f2fs_convert_inline_page()
147 f2fs_clear_inline_inode(dn->inode); in f2fs_convert_inline_page()
153 int f2fs_convert_inline_inode(struct inode *inode) in f2fs_convert_inline_inode() argument
155 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); in f2fs_convert_inline_inode()
160 page = grab_cache_page(inode->i_mapping, 0); in f2fs_convert_inline_inode()
166 ipage = get_node_page(sbi, inode->i_ino); in f2fs_convert_inline_inode()
172 set_new_dnode(&dn, inode, ipage, ipage, 0); in f2fs_convert_inline_inode()
174 if (f2fs_has_inline_data(inode)) in f2fs_convert_inline_inode()
185 int f2fs_write_inline_data(struct inode *inode, struct page *page) in f2fs_write_inline_data() argument
191 set_new_dnode(&dn, inode, NULL, NULL, 0); in f2fs_write_inline_data()
196 if (!f2fs_has_inline_data(inode)) { in f2fs_write_inline_data()
201 f2fs_bug_on(F2FS_I_SB(inode), page->index); in f2fs_write_inline_data()
209 set_inode_flag(F2FS_I(inode), FI_APPEND_WRITE); in f2fs_write_inline_data()
210 set_inode_flag(F2FS_I(inode), FI_DATA_EXIST); in f2fs_write_inline_data()
217 bool recover_inline_data(struct inode *inode, struct page *npage) in recover_inline_data() argument
219 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); in recover_inline_data()
235 if (f2fs_has_inline_data(inode) && in recover_inline_data()
238 ipage = get_node_page(sbi, inode->i_ino); in recover_inline_data()
247 set_inode_flag(F2FS_I(inode), FI_INLINE_DATA); in recover_inline_data()
248 set_inode_flag(F2FS_I(inode), FI_DATA_EXIST); in recover_inline_data()
250 update_inode(inode, ipage); in recover_inline_data()
255 if (f2fs_has_inline_data(inode)) { in recover_inline_data()
256 ipage = get_node_page(sbi, inode->i_ino); in recover_inline_data()
259 f2fs_clear_inline_inode(inode); in recover_inline_data()
260 update_inode(inode, ipage); in recover_inline_data()
263 truncate_blocks(inode, 0, false); in recover_inline_data()
269 struct f2fs_dir_entry *find_in_inline_dir(struct inode *dir, in find_in_inline_dir()
301 struct f2fs_dir_entry *f2fs_parent_inline_dir(struct inode *dir, in f2fs_parent_inline_dir()
320 int make_empty_inline_dir(struct inode *inode, struct inode *parent, in make_empty_inline_dir() argument
329 do_make_empty_dir(inode, parent, &d); in make_empty_inline_dir()
334 if (i_size_read(inode) < MAX_INLINE_DATA) { in make_empty_inline_dir()
335 i_size_write(inode, MAX_INLINE_DATA); in make_empty_inline_dir()
336 set_inode_flag(F2FS_I(inode), FI_UPDATE_DIR); in make_empty_inline_dir()
341 static int f2fs_convert_inline_dir(struct inode *dir, struct page *ipage, in f2fs_convert_inline_dir()
392 int f2fs_add_inline_entry(struct inode *dir, const struct qstr *name, in f2fs_add_inline_entry()
393 struct inode *inode, nid_t ino, umode_t mode) in f2fs_add_inline_entry() argument
420 if (inode) { in f2fs_add_inline_entry()
421 down_write(&F2FS_I(inode)->i_sem); in f2fs_add_inline_entry()
422 page = init_inode_metadata(inode, dir, name, ipage); in f2fs_add_inline_entry()
438 if (inode) { in f2fs_add_inline_entry()
439 F2FS_I(inode)->i_pino = dir->i_ino; in f2fs_add_inline_entry()
440 update_inode(inode, page); in f2fs_add_inline_entry()
444 update_parent_metadata(dir, inode, 0); in f2fs_add_inline_entry()
446 if (inode) in f2fs_add_inline_entry()
447 up_write(&F2FS_I(inode)->i_sem); in f2fs_add_inline_entry()
459 struct inode *dir, struct inode *inode) in f2fs_delete_inline_entry() argument
479 if (inode) in f2fs_delete_inline_entry()
480 f2fs_drop_nlink(dir, inode, page); in f2fs_delete_inline_entry()
485 bool f2fs_empty_inline_dir(struct inode *dir) in f2fs_empty_inline_dir()
511 struct inode *inode = file_inode(file); in f2fs_read_inline_dir() local
519 ipage = get_node_page(F2FS_I_SB(inode), inode->i_ino); in f2fs_read_inline_dir()