Lines Matching refs:inode
18 static unsigned long dir_blocks(struct inode *inode) in dir_blocks() argument
20 return ((unsigned long long) (i_size_read(inode) + PAGE_CACHE_SIZE - 1)) in dir_blocks()
157 static struct f2fs_dir_entry *find_in_level(struct inode *dir, in find_in_level()
209 struct f2fs_dir_entry *f2fs_find_entry(struct inode *dir, in f2fs_find_entry()
241 struct f2fs_dir_entry *f2fs_parent_dir(struct inode *dir, struct page **p) in f2fs_parent_dir()
261 ino_t f2fs_inode_by_name(struct inode *dir, struct qstr *qstr) in f2fs_inode_by_name()
277 void f2fs_set_link(struct inode *dir, struct f2fs_dir_entry *de, in f2fs_set_link()
278 struct page *page, struct inode *inode) in f2fs_set_link() argument
283 de->ino = cpu_to_le32(inode->i_ino); in f2fs_set_link()
284 set_de_type(de, inode->i_mode); in f2fs_set_link()
306 int update_dent_inode(struct inode *inode, const struct qstr *name) in update_dent_inode() argument
310 page = get_node_page(F2FS_I_SB(inode), inode->i_ino); in update_dent_inode()
320 void do_make_empty_dir(struct inode *inode, struct inode *parent, in do_make_empty_dir() argument
328 de->ino = cpu_to_le32(inode->i_ino); in do_make_empty_dir()
330 set_de_type(de, inode->i_mode); in do_make_empty_dir()
343 static int make_empty_dir(struct inode *inode, in make_empty_dir() argument
344 struct inode *parent, struct page *page) in make_empty_dir()
350 if (f2fs_has_inline_dentry(inode)) in make_empty_dir()
351 return make_empty_inline_dir(inode, parent, page); in make_empty_dir()
353 dentry_page = get_new_data_page(inode, page, 0, true); in make_empty_dir()
360 do_make_empty_dir(inode, parent, &d); in make_empty_dir()
369 struct page *init_inode_metadata(struct inode *inode, struct inode *dir, in init_inode_metadata() argument
375 if (is_inode_flag_set(F2FS_I(inode), FI_NEW_INODE)) { in init_inode_metadata()
376 page = new_inode_page(inode); in init_inode_metadata()
380 if (S_ISDIR(inode->i_mode)) { in init_inode_metadata()
381 err = make_empty_dir(inode, dir, page); in init_inode_metadata()
386 err = f2fs_init_acl(inode, dir, page, dpage); in init_inode_metadata()
390 err = f2fs_init_security(inode, dir, name, page); in init_inode_metadata()
394 page = get_node_page(F2FS_I_SB(dir), inode->i_ino); in init_inode_metadata()
398 set_cold_node(inode, page); in init_inode_metadata()
408 if (is_inode_flag_set(F2FS_I(inode), FI_INC_LINK)) { in init_inode_metadata()
409 file_lost_pino(inode); in init_inode_metadata()
414 if (inode->i_nlink == 0) in init_inode_metadata()
415 remove_orphan_inode(F2FS_I_SB(dir), inode->i_ino); in init_inode_metadata()
416 inc_nlink(inode); in init_inode_metadata()
424 truncate_inode_pages(&inode->i_data, 0); in init_inode_metadata()
425 truncate_blocks(inode, 0, false); in init_inode_metadata()
426 remove_dirty_dir_inode(inode); in init_inode_metadata()
427 remove_inode_page(inode); in init_inode_metadata()
431 void update_parent_metadata(struct inode *dir, struct inode *inode, in update_parent_metadata() argument
434 if (inode && is_inode_flag_set(F2FS_I(inode), FI_NEW_INODE)) { in update_parent_metadata()
435 if (S_ISDIR(inode->i_mode)) { in update_parent_metadata()
439 clear_inode_flag(F2FS_I(inode), FI_NEW_INODE); in update_parent_metadata()
449 if (inode && is_inode_flag_set(F2FS_I(inode), FI_INC_LINK)) in update_parent_metadata()
450 clear_inode_flag(F2FS_I(inode), FI_INC_LINK); in update_parent_metadata()
495 int __f2fs_add_link(struct inode *dir, const struct qstr *name, in __f2fs_add_link()
496 struct inode *inode, nid_t ino, umode_t mode) in __f2fs_add_link() argument
513 err = f2fs_add_inline_entry(dir, name, inode, ino, mode); in __f2fs_add_link()
563 if (inode) { in __f2fs_add_link()
564 down_write(&F2FS_I(inode)->i_sem); in __f2fs_add_link()
565 page = init_inode_metadata(inode, dir, name, NULL); in __f2fs_add_link()
577 if (inode) { in __f2fs_add_link()
579 F2FS_I(inode)->i_pino = dir->i_ino; in __f2fs_add_link()
580 update_inode(inode, page); in __f2fs_add_link()
584 update_parent_metadata(dir, inode, current_depth); in __f2fs_add_link()
586 if (inode) in __f2fs_add_link()
587 up_write(&F2FS_I(inode)->i_sem); in __f2fs_add_link()
598 int f2fs_do_tmpfile(struct inode *inode, struct inode *dir) in f2fs_do_tmpfile() argument
603 down_write(&F2FS_I(inode)->i_sem); in f2fs_do_tmpfile()
604 page = init_inode_metadata(inode, dir, NULL, NULL); in f2fs_do_tmpfile()
610 update_inode(inode, page); in f2fs_do_tmpfile()
613 clear_inode_flag(F2FS_I(inode), FI_NEW_INODE); in f2fs_do_tmpfile()
615 up_write(&F2FS_I(inode)->i_sem); in f2fs_do_tmpfile()
619 void f2fs_drop_nlink(struct inode *dir, struct inode *inode, struct page *page) in f2fs_drop_nlink() argument
623 down_write(&F2FS_I(inode)->i_sem); in f2fs_drop_nlink()
625 if (S_ISDIR(inode->i_mode)) { in f2fs_drop_nlink()
632 inode->i_ctime = CURRENT_TIME; in f2fs_drop_nlink()
634 drop_nlink(inode); in f2fs_drop_nlink()
635 if (S_ISDIR(inode->i_mode)) { in f2fs_drop_nlink()
636 drop_nlink(inode); in f2fs_drop_nlink()
637 i_size_write(inode, 0); in f2fs_drop_nlink()
639 up_write(&F2FS_I(inode)->i_sem); in f2fs_drop_nlink()
640 update_inode_page(inode); in f2fs_drop_nlink()
642 if (inode->i_nlink == 0) in f2fs_drop_nlink()
643 add_orphan_inode(sbi, inode->i_ino); in f2fs_drop_nlink()
653 struct inode *dir, struct inode *inode) in f2fs_delete_entry() argument
661 return f2fs_delete_inline_entry(dentry, page, dir, inode); in f2fs_delete_entry()
680 if (inode) in f2fs_delete_entry()
681 f2fs_drop_nlink(dir, inode, NULL); in f2fs_delete_entry()
693 bool f2fs_empty_dir(struct inode *dir) in f2fs_empty_dir()
763 struct inode *inode = file_inode(file); in f2fs_readdir() local
764 unsigned long npages = dir_blocks(inode); in f2fs_readdir()
771 if (f2fs_has_inline_dentry(inode)) in f2fs_readdir()
776 page_cache_sync_readahead(inode->i_mapping, ra, file, n, in f2fs_readdir()
780 dentry_page = get_lock_data_page(inode, n); in f2fs_readdir()