Lines Matching refs:inode
17 bool f2fs_may_inline_data(struct inode *inode) in f2fs_may_inline_data() argument
19 if (!test_opt(F2FS_I_SB(inode), INLINE_DATA)) in f2fs_may_inline_data()
22 if (f2fs_is_atomic_file(inode)) in f2fs_may_inline_data()
25 if (!S_ISREG(inode->i_mode) && !S_ISLNK(inode->i_mode)) in f2fs_may_inline_data()
28 if (i_size_read(inode) > MAX_INLINE_DATA) in f2fs_may_inline_data()
31 if (f2fs_encrypted_inode(inode) && S_ISREG(inode->i_mode)) in f2fs_may_inline_data()
37 bool f2fs_may_inline_dentry(struct inode *inode) in f2fs_may_inline_dentry() argument
39 if (!test_opt(F2FS_I_SB(inode), INLINE_DENTRY)) in f2fs_may_inline_dentry()
42 if (!S_ISDIR(inode->i_mode)) in f2fs_may_inline_dentry()
83 int f2fs_read_inline_data(struct inode *inode, struct page *page) in f2fs_read_inline_data() argument
87 ipage = get_node_page(F2FS_I_SB(inode), inode->i_ino); in f2fs_read_inline_data()
93 if (!f2fs_has_inline_data(inode)) { in f2fs_read_inline_data()
113 .sbi = F2FS_I_SB(dn->inode), in f2fs_convert_inline_page()
121 f2fs_bug_on(F2FS_I_SB(dn->inode), page->index); in f2fs_convert_inline_page()
123 if (!f2fs_exist_data(dn->inode)) in f2fs_convert_inline_page()
158 inode_dec_dirty_pages(dn->inode); in f2fs_convert_inline_page()
161 set_inode_flag(F2FS_I(dn->inode), FI_APPEND_WRITE); in f2fs_convert_inline_page()
166 stat_dec_inline_inode(dn->inode); in f2fs_convert_inline_page()
167 f2fs_clear_inline_inode(dn->inode); in f2fs_convert_inline_page()
173 int f2fs_convert_inline_inode(struct inode *inode) in f2fs_convert_inline_inode() argument
175 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); in f2fs_convert_inline_inode()
180 page = grab_cache_page(inode->i_mapping, 0); in f2fs_convert_inline_inode()
186 ipage = get_node_page(sbi, inode->i_ino); in f2fs_convert_inline_inode()
192 set_new_dnode(&dn, inode, ipage, ipage, 0); in f2fs_convert_inline_inode()
194 if (f2fs_has_inline_data(inode)) in f2fs_convert_inline_inode()
205 int f2fs_write_inline_data(struct inode *inode, struct page *page) in f2fs_write_inline_data() argument
211 set_new_dnode(&dn, inode, NULL, NULL, 0); in f2fs_write_inline_data()
216 if (!f2fs_has_inline_data(inode)) { in f2fs_write_inline_data()
221 f2fs_bug_on(F2FS_I_SB(inode), page->index); in f2fs_write_inline_data()
229 set_inode_flag(F2FS_I(inode), FI_APPEND_WRITE); in f2fs_write_inline_data()
230 set_inode_flag(F2FS_I(inode), FI_DATA_EXIST); in f2fs_write_inline_data()
237 bool recover_inline_data(struct inode *inode, struct page *npage) in recover_inline_data() argument
239 struct f2fs_sb_info *sbi = F2FS_I_SB(inode); in recover_inline_data()
255 if (f2fs_has_inline_data(inode) && in recover_inline_data()
258 ipage = get_node_page(sbi, inode->i_ino); in recover_inline_data()
267 set_inode_flag(F2FS_I(inode), FI_INLINE_DATA); in recover_inline_data()
268 set_inode_flag(F2FS_I(inode), FI_DATA_EXIST); in recover_inline_data()
270 update_inode(inode, ipage); in recover_inline_data()
275 if (f2fs_has_inline_data(inode)) { in recover_inline_data()
276 ipage = get_node_page(sbi, inode->i_ino); in recover_inline_data()
280 f2fs_clear_inline_inode(inode); in recover_inline_data()
281 update_inode(inode, ipage); in recover_inline_data()
284 if (truncate_blocks(inode, 0, false)) in recover_inline_data()
291 struct f2fs_dir_entry *find_in_inline_dir(struct inode *dir, in find_in_inline_dir()
326 struct f2fs_dir_entry *f2fs_parent_inline_dir(struct inode *dir, in f2fs_parent_inline_dir()
345 int make_empty_inline_dir(struct inode *inode, struct inode *parent, in make_empty_inline_dir() argument
354 do_make_empty_dir(inode, parent, &d); in make_empty_inline_dir()
359 if (i_size_read(inode) < MAX_INLINE_DATA) { in make_empty_inline_dir()
360 i_size_write(inode, MAX_INLINE_DATA); in make_empty_inline_dir()
361 set_inode_flag(F2FS_I(inode), FI_UPDATE_DIR); in make_empty_inline_dir()
370 static int f2fs_convert_inline_dir(struct inode *dir, struct page *ipage, in f2fs_convert_inline_dir()
431 int f2fs_add_inline_entry(struct inode *dir, const struct qstr *name, in f2fs_add_inline_entry()
432 struct inode *inode, nid_t ino, umode_t mode) in f2fs_add_inline_entry() argument
460 if (inode) { in f2fs_add_inline_entry()
461 down_write(&F2FS_I(inode)->i_sem); in f2fs_add_inline_entry()
462 page = init_inode_metadata(inode, dir, name, ipage); in f2fs_add_inline_entry()
478 if (inode) { in f2fs_add_inline_entry()
479 F2FS_I(inode)->i_pino = dir->i_ino; in f2fs_add_inline_entry()
480 update_inode(inode, page); in f2fs_add_inline_entry()
484 update_parent_metadata(dir, inode, 0); in f2fs_add_inline_entry()
486 if (inode) in f2fs_add_inline_entry()
487 up_write(&F2FS_I(inode)->i_sem); in f2fs_add_inline_entry()
499 struct inode *dir, struct inode *inode) in f2fs_delete_inline_entry() argument
519 if (inode) in f2fs_delete_inline_entry()
520 f2fs_drop_nlink(dir, inode, page); in f2fs_delete_inline_entry()
525 bool f2fs_empty_inline_dir(struct inode *dir) in f2fs_empty_inline_dir()
552 struct inode *inode = file_inode(file); in f2fs_read_inline_dir() local
560 ipage = get_node_page(F2FS_I_SB(inode), inode->i_ino); in f2fs_read_inline_dir()
566 make_dentry_ptr(inode, &d, (void *)inline_dentry, 2); in f2fs_read_inline_dir()
575 int f2fs_inline_data_fiemap(struct inode *inode, in f2fs_inline_data_fiemap() argument
585 ipage = get_node_page(F2FS_I_SB(inode), inode->i_ino); in f2fs_inline_data_fiemap()
589 if (!f2fs_has_inline_data(inode)) { in f2fs_inline_data_fiemap()
594 ilen = min_t(size_t, MAX_INLINE_DATA, i_size_read(inode)); in f2fs_inline_data_fiemap()
601 get_node_info(F2FS_I_SB(inode), inode->i_ino, &ni); in f2fs_inline_data_fiemap()
602 byteaddr = (__u64)ni.blk_addr << inode->i_sb->s_blocksize_bits; in f2fs_inline_data_fiemap()