Lines Matching refs:dentry

45 	struct dentry *dentry;  member
150 if (!rdd->dentry) in ovl_calc_d_ino()
154 if (ovl_xino_bits(OVL_FS(rdd->dentry->d_sb))) in ovl_calc_d_ino()
170 ovl_test_flag(OVL_IMPURE, d_inode(rdd->dentry))) in ovl_calc_d_ino()
316 struct ovl_fs *ofs = OVL_FS(rdd->dentry->d_sb); in ovl_fill_merge()
353 struct dentry *dentry, *dir = path->dentry; in ovl_check_whiteouts() local
359 dentry = lookup_one_positive_killable(mnt_idmap(path->mnt), in ovl_check_whiteouts()
362 if (!IS_ERR(dentry)) { in ovl_check_whiteouts()
363 p->is_whiteout = ovl_is_whiteout(dentry); in ovl_check_whiteouts()
364 dput(dentry); in ovl_check_whiteouts()
365 } else if (PTR_ERR(dentry) == -EINTR) { in ovl_check_whiteouts()
393 if (!err && rdd->first_maybe_whiteout && rdd->dentry) in ovl_dir_read()
422 static int ovl_dir_read_merged(struct dentry *dentry, struct list_head *list, in ovl_dir_read_merged() argument
430 .dentry = dentry, in ovl_dir_read_merged()
438 struct ovl_fs *ofs = OVL_FS(dentry->d_sb); in ovl_dir_read_merged()
441 next = ovl_path_next(idx, dentry, &realpath, &layer); in ovl_dir_read_merged()
444 rdd.map = sb_encoding(realpath.dentry->d_sb); in ovl_dir_read_merged()
446 rdd.is_upper = ovl_dentry_upper(dentry) == realpath.dentry; in ovl_dir_read_merged()
448 ovl_dentry_has_xwhiteouts(dentry); in ovl_dir_read_merged()
482 static struct ovl_dir_cache *ovl_cache_get(struct dentry *dentry) in ovl_cache_get() argument
486 struct inode *inode = d_inode(dentry); in ovl_cache_get()
494 ovl_set_dir_cache(d_inode(dentry), NULL); in ovl_cache_get()
504 res = ovl_dir_read_merged(dentry, &cache->entries, &cache->root); in ovl_cache_get()
554 struct dentry *dir = path->dentry; in ovl_cache_update()
556 struct dentry *this = NULL; in ovl_cache_update()
598 statpath.dentry = this; in ovl_cache_update()
663 ovl_path_upper(path->dentry, &realpath); in ovl_dir_read_impure()
696 struct dentry *dentry = path->dentry; in ovl_cache_get_impure() local
697 struct inode *inode = d_inode(dentry); in ovl_cache_get_impure()
698 struct ovl_fs *ofs = OVL_FS(dentry->d_sb); in ovl_cache_get_impure()
724 if (!ovl_want_write(dentry)) { in ovl_cache_get_impure()
725 ovl_removexattr(ofs, ovl_dentry_upper(dentry), in ovl_cache_get_impure()
727 ovl_drop_write(dentry); in ovl_cache_get_impure()
797 struct dentry *dir = file->f_path.dentry; in ovl_iterate_real()
815 statpath.dentry = dir->d_parent; in ovl_iterate_real()
839 struct dentry *dentry = file->f_path.dentry; in ovl_iterate_merged() local
846 cache = ovl_cache_get(dentry); in ovl_iterate_merged()
876 struct dentry *dentry = file->f_path.dentry; in ovl_need_adjust_d_ino() local
877 struct ovl_fs *ofs = OVL_FS(dentry->d_sb); in ovl_need_adjust_d_ino()
889 OVL_TYPE_MERGE(ovl_path_type(dentry->d_parent))) in ovl_need_adjust_d_ino()
973 struct dentry *dentry = file->f_path.dentry; in ovl_dir_real_file() local
976 if (!OVL_TYPE_UPPER(ovl_path_type(dentry))) in ovl_dir_real_file()
987 ovl_path_upper(dentry, &upperpath); in ovl_dir_real_file()
1051 type = ovl_path_real(file->f_path.dentry, &realpath); in ovl_dir_open()
1076 int ovl_check_empty_dir(struct dentry *dentry, struct list_head *list) in ovl_check_empty_dir() argument
1082 with_ovl_creds(dentry->d_sb) in ovl_check_empty_dir()
1083 err = ovl_dir_read_merged(dentry, list, &root); in ovl_check_empty_dir()
1113 void ovl_cleanup_whiteouts(struct ovl_fs *ofs, struct dentry *upper, in ovl_cleanup_whiteouts()
1119 struct dentry *dentry; in ovl_cleanup_whiteouts() local
1124 dentry = ovl_lookup_upper_unlocked(ofs, p->name, upper, p->len); in ovl_cleanup_whiteouts()
1125 if (IS_ERR(dentry)) { in ovl_cleanup_whiteouts()
1128 (int) PTR_ERR(dentry)); in ovl_cleanup_whiteouts()
1131 if (dentry->d_inode) in ovl_cleanup_whiteouts()
1132 ovl_cleanup(ofs, upper, dentry); in ovl_cleanup_whiteouts()
1133 dput(dentry); in ovl_cleanup_whiteouts()
1198 !strcmp(path->dentry->d_name.name, OVL_INCOMPATDIR_NAME)) in ovl_workdir_cleanup_recurse()
1206 struct dentry *dentry; in ovl_workdir_cleanup_recurse() local
1216 dentry = ovl_lookup_upper_unlocked(ofs, p->name, path->dentry, p->len); in ovl_workdir_cleanup_recurse()
1217 if (IS_ERR(dentry)) in ovl_workdir_cleanup_recurse()
1219 if (dentry->d_inode) in ovl_workdir_cleanup_recurse()
1220 err = ovl_workdir_cleanup(ofs, path->dentry, path->mnt, in ovl_workdir_cleanup_recurse()
1221 dentry, level); in ovl_workdir_cleanup_recurse()
1222 dput(dentry); in ovl_workdir_cleanup_recurse()
1231 int ovl_workdir_cleanup(struct ovl_fs *ofs, struct dentry *parent, in ovl_workdir_cleanup()
1232 struct vfsmount *mnt, struct dentry *dentry, int level) in ovl_workdir_cleanup() argument
1236 if (!d_is_dir(dentry) || level > 1) in ovl_workdir_cleanup()
1237 return ovl_cleanup(ofs, parent, dentry); in ovl_workdir_cleanup()
1239 dentry = start_removing_dentry(parent, dentry); in ovl_workdir_cleanup()
1240 if (IS_ERR(dentry)) in ovl_workdir_cleanup()
1241 return PTR_ERR(dentry); in ovl_workdir_cleanup()
1242 err = ovl_do_rmdir(ofs, parent->d_inode, dentry); in ovl_workdir_cleanup()
1243 end_removing(dentry); in ovl_workdir_cleanup()
1245 struct path path = { .mnt = mnt, .dentry = dentry }; in ovl_workdir_cleanup()
1249 err = ovl_cleanup(ofs, parent, dentry); in ovl_workdir_cleanup()
1258 struct dentry *indexdir = ofs->workdir; in ovl_indexdir_cleanup()
1259 struct dentry *index = NULL; in ovl_indexdir_cleanup()
1260 struct path path = { .mnt = ovl_upper_mnt(ofs), .dentry = indexdir }; in ovl_indexdir_cleanup()