• Home
  • Raw
  • Download

Lines Matching refs:dentry

42 void free_dentry_private_data(struct dentry *dentry)  in free_dentry_private_data()  argument
44 kmem_cache_free(sdcardfs_dentry_cachep, dentry->d_fsdata); in free_dentry_private_data()
45 dentry->d_fsdata = NULL; in free_dentry_private_data()
49 int new_dentry_private_data(struct dentry *dentry) in new_dentry_private_data() argument
51 struct sdcardfs_dentry_info *info = SDCARDFS_D(dentry); in new_dentry_private_data()
59 dentry->d_fsdata = info; in new_dentry_private_data()
167 static struct dentry *__sdcardfs_interpose(struct dentry *dentry, in __sdcardfs_interpose() argument
175 struct dentry *ret_dentry; in __sdcardfs_interpose()
177 lower_inode = d_inode(lower_path->dentry); in __sdcardfs_interpose()
198 ret_dentry = d_splice_alias(inode, dentry); in __sdcardfs_interpose()
199 dentry = ret_dentry ?: dentry; in __sdcardfs_interpose()
200 if (!IS_ERR(dentry)) in __sdcardfs_interpose()
201 update_derived_permission_lock(dentry); in __sdcardfs_interpose()
214 int sdcardfs_interpose(struct dentry *dentry, struct super_block *sb, in sdcardfs_interpose() argument
217 struct dentry *ret_dentry; in sdcardfs_interpose()
219 ret_dentry = __sdcardfs_interpose(dentry, sb, lower_path, id); in sdcardfs_interpose()
251 static struct dentry *__sdcardfs_lookup(struct dentry *dentry, in __sdcardfs_lookup() argument
256 struct dentry *lower_dir_dentry = NULL; in __sdcardfs_lookup()
257 struct dentry *lower_dentry; in __sdcardfs_lookup()
260 struct dentry *ret_dentry = NULL; in __sdcardfs_lookup()
263 sbi = SDCARDFS_SB(dentry->d_sb); in __sdcardfs_lookup()
265 d_set_d_op(dentry, &sdcardfs_ci_dops); in __sdcardfs_lookup()
267 if (IS_ROOT(dentry)) in __sdcardfs_lookup()
270 name = &dentry->d_name; in __sdcardfs_lookup()
273 lower_dir_dentry = lower_parent_path->dentry; in __sdcardfs_lookup()
324 if (need_graft_path(dentry)) { in __sdcardfs_lookup()
332 err = setup_obb_dentry(dentry, &lower_path); in __sdcardfs_lookup()
342 sdcardfs_put_reset_orig_path(dentry); in __sdcardfs_lookup()
347 sdcardfs_set_lower_path(dentry, &lower_path); in __sdcardfs_lookup()
349 __sdcardfs_interpose(dentry, dentry->d_sb, &lower_path, id); in __sdcardfs_lookup()
353 sdcardfs_put_reset_lower_path(dentry); in __sdcardfs_lookup()
373 lower_path.dentry = lower_dentry; in __sdcardfs_lookup()
385 sdcardfs_set_lower_path(dentry, &lower_path); in __sdcardfs_lookup()
412 struct dentry *sdcardfs_lookup(struct inode *dir, struct dentry *dentry, in sdcardfs_lookup() argument
415 struct dentry *ret = NULL, *parent; in sdcardfs_lookup()
420 parent = dget_parent(dentry); in sdcardfs_lookup()
422 if (!check_caller_access_to_name(d_inode(parent), &dentry->d_name)) { in sdcardfs_lookup()
438 err = new_dentry_private_data(dentry); in sdcardfs_lookup()
444 ret = __sdcardfs_lookup(dentry, flags, &lower_parent_path, in sdcardfs_lookup()
449 dentry = ret; in sdcardfs_lookup()
450 if (d_inode(dentry)) { in sdcardfs_lookup()
451 fsstack_copy_attr_times(d_inode(dentry), in sdcardfs_lookup()
452 sdcardfs_lower_inode(d_inode(dentry))); in sdcardfs_lookup()
454 get_derived_permission(parent, dentry); in sdcardfs_lookup()
455 fixup_tmp_permissions(d_inode(dentry)); in sdcardfs_lookup()
456 fixup_lower_ownership(dentry, dentry->d_name.name); in sdcardfs_lookup()