Lines Matching refs:inode

23 static unsigned long dir_blocks(struct inode *inode)  in dir_blocks()  argument
25 return ((unsigned long long) (i_size_read(inode) + PAGE_SIZE - 1)) in dir_blocks()
46 int f2fs_init_casefolded_name(const struct inode *dir, in f2fs_init_casefolded_name()
74 static int __f2fs_setup_filename(const struct inode *dir, in __f2fs_setup_filename()
107 int f2fs_setup_filename(struct inode *dir, const struct qstr *iname, in f2fs_setup_filename()
126 int f2fs_prepare_lookup(struct inode *dir, struct dentry *dentry, in f2fs_prepare_lookup()
165 static struct f2fs_dir_entry *find_in_block(struct inode *dir, in find_in_block()
186 static int f2fs_match_ci_name(const struct inode *dir, const struct qstr *name, in f2fs_match_ci_name()
231 static inline int f2fs_match_name(const struct inode *dir, in f2fs_match_name()
277 res = f2fs_match_name(d->inode, fname, in f2fs_find_target_dentry()
300 static struct f2fs_dir_entry *find_in_level(struct inode *dir, in find_in_level()
360 struct f2fs_dir_entry *__f2fs_find_entry(struct inode *dir, in __f2fs_find_entry()
405 struct f2fs_dir_entry *f2fs_find_entry(struct inode *dir, in f2fs_find_entry()
427 struct f2fs_dir_entry *f2fs_parent_dir(struct inode *dir, struct page **p) in f2fs_parent_dir()
432 ino_t f2fs_inode_by_name(struct inode *dir, const struct qstr *qstr, in f2fs_inode_by_name()
447 void f2fs_set_link(struct inode *dir, struct f2fs_dir_entry *de, in f2fs_set_link()
448 struct page *page, struct inode *inode) in f2fs_set_link() argument
454 de->ino = cpu_to_le32(inode->i_ino); in f2fs_set_link()
455 de->file_type = fs_umode_to_ftype(inode->i_mode); in f2fs_set_link()
463 static void init_dent_inode(struct inode *dir, struct inode *inode, in init_dent_inode() argument
479 file_set_enc_name(inode); in init_dent_inode()
493 file_lost_pino(inode); in init_dent_inode()
499 void f2fs_do_make_empty_dir(struct inode *inode, struct inode *parent, in f2fs_do_make_empty_dir() argument
506 f2fs_update_dentry(inode->i_ino, inode->i_mode, d, &dot, 0, 0); in f2fs_do_make_empty_dir()
512 static int make_empty_dir(struct inode *inode, in make_empty_dir() argument
513 struct inode *parent, struct page *page) in make_empty_dir()
519 if (f2fs_has_inline_dentry(inode)) in make_empty_dir()
520 return f2fs_make_empty_inline_dir(inode, parent, page); in make_empty_dir()
522 dentry_page = f2fs_get_new_data_page(inode, page, 0, true); in make_empty_dir()
529 f2fs_do_make_empty_dir(inode, parent, &d); in make_empty_dir()
536 struct page *f2fs_init_inode_metadata(struct inode *inode, struct inode *dir, in f2fs_init_inode_metadata() argument
542 if (is_inode_flag_set(inode, FI_NEW_INODE)) { in f2fs_init_inode_metadata()
543 page = f2fs_new_inode_page(inode); in f2fs_init_inode_metadata()
547 if (S_ISDIR(inode->i_mode)) { in f2fs_init_inode_metadata()
550 err = make_empty_dir(inode, dir, page); in f2fs_init_inode_metadata()
558 err = f2fs_init_acl(inode, dir, page, dpage); in f2fs_init_inode_metadata()
562 err = f2fs_init_security(inode, dir, in f2fs_init_inode_metadata()
567 if (IS_ENCRYPTED(inode)) { in f2fs_init_inode_metadata()
568 err = fscrypt_set_context(inode, page); in f2fs_init_inode_metadata()
573 page = f2fs_get_node_page(F2FS_I_SB(dir), inode->i_ino); in f2fs_init_inode_metadata()
578 init_dent_inode(dir, inode, fname, page); in f2fs_init_inode_metadata()
584 if (is_inode_flag_set(inode, FI_INC_LINK)) { in f2fs_init_inode_metadata()
585 if (!S_ISDIR(inode->i_mode)) in f2fs_init_inode_metadata()
586 file_lost_pino(inode); in f2fs_init_inode_metadata()
591 if (inode->i_nlink == 0) in f2fs_init_inode_metadata()
592 f2fs_remove_orphan_inode(F2FS_I_SB(dir), inode->i_ino); in f2fs_init_inode_metadata()
593 f2fs_i_links_write(inode, true); in f2fs_init_inode_metadata()
598 clear_nlink(inode); in f2fs_init_inode_metadata()
599 f2fs_update_inode(inode, page); in f2fs_init_inode_metadata()
604 void f2fs_update_parent_metadata(struct inode *dir, struct inode *inode, in f2fs_update_parent_metadata() argument
607 if (inode && is_inode_flag_set(inode, FI_NEW_INODE)) { in f2fs_update_parent_metadata()
608 if (S_ISDIR(inode->i_mode)) in f2fs_update_parent_metadata()
610 clear_inode_flag(inode, FI_NEW_INODE); in f2fs_update_parent_metadata()
618 if (inode && is_inode_flag_set(inode, FI_INC_LINK)) in f2fs_update_parent_metadata()
619 clear_inode_flag(inode, FI_INC_LINK); in f2fs_update_parent_metadata()
642 bool f2fs_has_enough_room(struct inode *dir, struct page *ipage, in f2fs_has_enough_room()
678 int f2fs_add_regular_entry(struct inode *dir, const struct f2fs_filename *fname, in f2fs_add_regular_entry()
679 struct inode *inode, nid_t ino, umode_t mode) in f2fs_add_regular_entry() argument
738 if (inode) { in f2fs_add_regular_entry()
739 f2fs_down_write(&F2FS_I(inode)->i_sem); in f2fs_add_regular_entry()
740 page = f2fs_init_inode_metadata(inode, dir, fname, NULL); in f2fs_add_regular_entry()
753 if (inode) { in f2fs_add_regular_entry()
754 f2fs_i_pino_write(inode, dir->i_ino); in f2fs_add_regular_entry()
757 if (is_inode_flag_set(inode, FI_NEW_INODE)) in f2fs_add_regular_entry()
758 f2fs_update_inode(inode, page); in f2fs_add_regular_entry()
763 f2fs_update_parent_metadata(dir, inode, current_depth); in f2fs_add_regular_entry()
765 if (inode) in f2fs_add_regular_entry()
766 f2fs_up_write(&F2FS_I(inode)->i_sem); in f2fs_add_regular_entry()
773 int f2fs_add_dentry(struct inode *dir, const struct f2fs_filename *fname, in f2fs_add_dentry()
774 struct inode *inode, nid_t ino, umode_t mode) in f2fs_add_dentry() argument
784 err = f2fs_add_inline_entry(dir, fname, inode, ino, mode); in f2fs_add_dentry()
788 err = f2fs_add_regular_entry(dir, fname, inode, ino, mode); in f2fs_add_dentry()
798 int f2fs_do_add_link(struct inode *dir, const struct qstr *name, in f2fs_do_add_link()
799 struct inode *inode, nid_t ino, umode_t mode) in f2fs_do_add_link() argument
827 err = f2fs_add_dentry(dir, &fname, inode, ino, mode); in f2fs_do_add_link()
833 int f2fs_do_tmpfile(struct inode *inode, struct inode *dir, in f2fs_do_tmpfile() argument
839 f2fs_down_write(&F2FS_I(inode)->i_sem); in f2fs_do_tmpfile()
840 page = f2fs_init_inode_metadata(inode, dir, fname, NULL); in f2fs_do_tmpfile()
847 clear_inode_flag(inode, FI_NEW_INODE); in f2fs_do_tmpfile()
848 f2fs_update_time(F2FS_I_SB(inode), REQ_TIME); in f2fs_do_tmpfile()
850 f2fs_up_write(&F2FS_I(inode)->i_sem); in f2fs_do_tmpfile()
854 void f2fs_drop_nlink(struct inode *dir, struct inode *inode) in f2fs_drop_nlink() argument
858 f2fs_down_write(&F2FS_I(inode)->i_sem); in f2fs_drop_nlink()
860 if (S_ISDIR(inode->i_mode)) in f2fs_drop_nlink()
862 inode_set_ctime_current(inode); in f2fs_drop_nlink()
864 f2fs_i_links_write(inode, false); in f2fs_drop_nlink()
865 if (S_ISDIR(inode->i_mode)) { in f2fs_drop_nlink()
866 f2fs_i_links_write(inode, false); in f2fs_drop_nlink()
867 f2fs_i_size_write(inode, 0); in f2fs_drop_nlink()
869 f2fs_up_write(&F2FS_I(inode)->i_sem); in f2fs_drop_nlink()
871 if (inode->i_nlink == 0) in f2fs_drop_nlink()
872 f2fs_add_orphan_inode(inode); in f2fs_drop_nlink()
882 struct inode *dir, struct inode *inode) in f2fs_delete_entry() argument
895 return f2fs_delete_inline_entry(dentry, page, dir, inode); in f2fs_delete_entry()
926 if (inode) in f2fs_delete_entry()
927 f2fs_drop_nlink(dir, inode); in f2fs_delete_entry()
930 bool f2fs_empty_dir(struct inode *dir) in f2fs_empty_dir()
980 struct f2fs_sb_info *sbi = F2FS_I_SB(d->inode); in f2fs_fill_dentries()
1026 if (IS_ENCRYPTED(d->inode)) { in f2fs_fill_dentries()
1029 err = fscrypt_fname_disk_to_usr(d->inode, in f2fs_fill_dentries()
1059 struct inode *inode = file_inode(file); in f2fs_readdir() local
1060 unsigned long npages = dir_blocks(inode); in f2fs_readdir()
1070 if (IS_ENCRYPTED(inode)) { in f2fs_readdir()
1071 err = fscrypt_prepare_readdir(inode); in f2fs_readdir()
1080 if (f2fs_has_inline_dentry(inode)) { in f2fs_readdir()
1097 page_cache_sync_readahead(inode->i_mapping, ra, file, n, in f2fs_readdir()
1100 dentry_page = f2fs_find_data_page(inode, n, &next_pgofs); in f2fs_readdir()
1114 make_dentry_ptr_block(inode, &d, dentry_blk); in f2fs_readdir()
1130 trace_f2fs_readdir(inode, start_pos, ctx->pos, err); in f2fs_readdir()