Lines Matching refs:fname
47 struct f2fs_filename *fname) in f2fs_init_casefolded_name() argument
53 !is_dot_dotdot(fname->usr_fname->name, fname->usr_fname->len)) { in f2fs_init_casefolded_name()
54 fname->cf_name.name = f2fs_kmem_cache_alloc(f2fs_cf_name_slab, in f2fs_init_casefolded_name()
56 if (!fname->cf_name.name) in f2fs_init_casefolded_name()
58 fname->cf_name.len = utf8_casefold(sb->s_encoding, in f2fs_init_casefolded_name()
59 fname->usr_fname, in f2fs_init_casefolded_name()
60 fname->cf_name.name, in f2fs_init_casefolded_name()
62 if ((int)fname->cf_name.len <= 0) { in f2fs_init_casefolded_name()
63 kmem_cache_free(f2fs_cf_name_slab, fname->cf_name.name); in f2fs_init_casefolded_name()
64 fname->cf_name.name = NULL; in f2fs_init_casefolded_name()
76 struct f2fs_filename *fname) in __f2fs_setup_filename() argument
80 memset(fname, 0, sizeof(*fname)); in __f2fs_setup_filename()
82 fname->usr_fname = crypt_name->usr_fname; in __f2fs_setup_filename()
83 fname->disk_name = crypt_name->disk_name; in __f2fs_setup_filename()
85 fname->crypto_buf = crypt_name->crypto_buf; in __f2fs_setup_filename()
89 fname->hash = cpu_to_le32(crypt_name->hash); in __f2fs_setup_filename()
91 err = f2fs_init_casefolded_name(dir, fname); in __f2fs_setup_filename()
93 f2fs_free_filename(fname); in __f2fs_setup_filename()
96 f2fs_hash_filename(dir, fname); in __f2fs_setup_filename()
108 int lookup, struct f2fs_filename *fname) in f2fs_setup_filename() argument
117 return __f2fs_setup_filename(dir, &crypt_name, fname); in f2fs_setup_filename()
127 struct f2fs_filename *fname) in f2fs_prepare_lookup() argument
136 return __f2fs_setup_filename(dir, &crypt_name, fname); in f2fs_prepare_lookup()
139 void f2fs_free_filename(struct f2fs_filename *fname) in f2fs_free_filename() argument
142 kfree(fname->crypto_buf.name); in f2fs_free_filename()
143 fname->crypto_buf.name = NULL; in f2fs_free_filename()
146 if (fname->cf_name.name) { in f2fs_free_filename()
147 kmem_cache_free(f2fs_cf_name_slab, fname->cf_name.name); in f2fs_free_filename()
148 fname->cf_name.name = NULL; in f2fs_free_filename()
167 const struct f2fs_filename *fname, in find_in_block() argument
176 return f2fs_find_target_dentry(&d, fname, max_slots); in find_in_block()
232 const struct f2fs_filename *fname, in f2fs_match_name() argument
238 if (fname->cf_name.name) { in f2fs_match_name()
239 struct qstr cf = FSTR_TO_QSTR(&fname->cf_name); in f2fs_match_name()
244 f.usr_fname = fname->usr_fname; in f2fs_match_name()
245 f.disk_name = fname->disk_name; in f2fs_match_name()
247 f.crypto_buf = fname->crypto_buf; in f2fs_match_name()
253 const struct f2fs_filename *fname, int *max_slots) in f2fs_find_target_dentry() argument
276 if (de->hash_code == fname->hash) { in f2fs_find_target_dentry()
277 res = f2fs_match_name(d->inode, fname, in f2fs_find_target_dentry()
302 const struct f2fs_filename *fname, in find_in_level() argument
305 int s = GET_DENTRY_SLOTS(fname->disk_name.len); in find_in_level()
318 le32_to_cpu(fname->hash) % nbucket); in find_in_level()
335 de = find_in_block(dir, dentry_page, fname, &max_slots); in find_in_level()
352 if (!de && room && F2FS_I(dir)->chash != fname->hash) { in find_in_level()
353 F2FS_I(dir)->chash = fname->hash; in find_in_level()
361 const struct f2fs_filename *fname, in __f2fs_find_entry() argument
372 de = f2fs_find_in_inline_dir(dir, fname, res_page); in __f2fs_find_entry()
388 de = find_in_level(dir, level, fname, res_page); in __f2fs_find_entry()
409 struct f2fs_filename fname; in f2fs_find_entry() local
412 err = f2fs_setup_filename(dir, child, 1, &fname); in f2fs_find_entry()
421 de = __f2fs_find_entry(dir, &fname, res_page); in f2fs_find_entry()
423 f2fs_free_filename(&fname); in f2fs_find_entry()
464 const struct f2fs_filename *fname, in init_dent_inode() argument
469 if (!fname) /* tmpfile case? */ in init_dent_inode()
476 ri->i_namelen = cpu_to_le32(fname->disk_name.len); in init_dent_inode()
477 memcpy(ri->i_name, fname->disk_name.name, fname->disk_name.len); in init_dent_inode()
488 if (fname->disk_name.len + sizeof(f2fs_hash_t) <= in init_dent_inode()
490 put_unaligned(fname->hash, (f2fs_hash_t *) in init_dent_inode()
491 &ri->i_name[fname->disk_name.len]); in init_dent_inode()
537 const struct f2fs_filename *fname, struct page *dpage) in f2fs_init_inode_metadata() argument
563 fname ? fname->usr_fname : NULL, page); in f2fs_init_inode_metadata()
578 init_dent_inode(dir, inode, fname, page); in f2fs_init_inode_metadata()
643 const struct f2fs_filename *fname) in f2fs_has_enough_room() argument
647 int slots = GET_DENTRY_SLOTS(fname->disk_name.len); in f2fs_has_enough_room()
678 int f2fs_add_regular_entry(struct inode *dir, const struct f2fs_filename *fname, in f2fs_add_regular_entry() argument
693 slots = GET_DENTRY_SLOTS(fname->disk_name.len); in f2fs_add_regular_entry()
696 if (F2FS_I(dir)->chash == fname->hash) { in f2fs_add_regular_entry()
716 (le32_to_cpu(fname->hash) % nbucket)); in f2fs_add_regular_entry()
740 page = f2fs_init_inode_metadata(inode, dir, fname, NULL); in f2fs_add_regular_entry()
748 f2fs_update_dentry(ino, mode, &d, &fname->disk_name, fname->hash, in f2fs_add_regular_entry()
773 int f2fs_add_dentry(struct inode *dir, const struct f2fs_filename *fname, 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()
801 struct f2fs_filename fname; in f2fs_do_add_link() local
806 err = f2fs_setup_filename(dir, name, 0, &fname); in f2fs_do_add_link()
818 de = __f2fs_find_entry(dir, &fname, &page); in f2fs_do_add_link()
827 err = f2fs_add_dentry(dir, &fname, inode, ino, mode); in f2fs_do_add_link()
829 f2fs_free_filename(&fname); in f2fs_do_add_link()