/fs/ |
D | dcache.c | 109 static inline struct hlist_bl_head *in_lookup_hash(const struct dentry *parent, in in_lookup_hash() 231 static inline int dentry_cmp(const struct dentry *dentry, const unsigned char *ct, unsigned tcount) in dentry_cmp() argument 249 const unsigned char *cs = READ_ONCE(dentry->d_name.name); in dentry_cmp() 262 static inline struct external_name *external_name(struct dentry *dentry) in external_name() argument 264 return container_of(dentry->d_name.name, struct external_name, name[0]); in external_name() 269 struct dentry *dentry = container_of(head, struct dentry, d_u.d_rcu); in __d_free() local 271 kmem_cache_free(dentry_cache, dentry); in __d_free() 276 struct dentry *dentry = container_of(head, struct dentry, d_u.d_rcu); in __d_free_external() local 277 kfree(external_name(dentry)); in __d_free_external() 278 kmem_cache_free(dentry_cache, dentry); in __d_free_external() [all …]
|
D | namei.c | 487 dget(path->dentry); in path_get() 499 dput(path->dentry); in path_put() 536 p->path.dentry = NULL; in set_nameidata() 572 static bool path_connected(struct vfsmount *mnt, struct dentry *dentry) in path_connected() argument 580 return is_subdir(dentry, mnt->mnt_root); in path_connected() 611 nd->path.dentry = NULL; in terminate_walk() 621 path->dentry = NULL; in __legitimize_path() 624 if (unlikely(!lockref_get_not_dead(&path->dentry->d_lockref))) { in __legitimize_path() 625 path->dentry = NULL; in __legitimize_path() 628 return !read_seqcount_retry(&path->dentry->d_seq, seq); in __legitimize_path() [all …]
|
/fs/overlayfs/ |
D | overlayfs.h | 122 static inline int ovl_do_rmdir(struct inode *dir, struct dentry *dentry) in ovl_do_rmdir() argument 124 int err = vfs_rmdir(dir, dentry); in ovl_do_rmdir() 126 pr_debug("rmdir(%pd2) = %i\n", dentry, err); in ovl_do_rmdir() 130 static inline int ovl_do_unlink(struct inode *dir, struct dentry *dentry) in ovl_do_unlink() argument 132 int err = vfs_unlink(dir, dentry, NULL); in ovl_do_unlink() 134 pr_debug("unlink(%pd2) = %i\n", dentry, err); in ovl_do_unlink() 138 static inline int ovl_do_link(struct dentry *old_dentry, struct inode *dir, in ovl_do_link() 139 struct dentry *new_dentry) in ovl_do_link() 147 static inline int ovl_do_create(struct inode *dir, struct dentry *dentry, in ovl_do_create() argument 150 int err = vfs_create(dir, dentry, mode, true); in ovl_do_create() [all …]
|
D | util.c | 18 int ovl_want_write(struct dentry *dentry) in ovl_want_write() argument 20 struct ovl_fs *ofs = dentry->d_sb->s_fs_info; in ovl_want_write() 24 void ovl_drop_write(struct dentry *dentry) in ovl_drop_write() argument 26 struct ovl_fs *ofs = dentry->d_sb->s_fs_info; in ovl_drop_write() 30 struct dentry *ovl_workdir(struct dentry *dentry) in ovl_workdir() argument 32 struct ovl_fs *ofs = dentry->d_sb->s_fs_info; in ovl_workdir() 67 struct dentry *ovl_indexdir(struct super_block *sb) in ovl_indexdir() 103 bool ovl_dentry_remote(struct dentry *dentry) in ovl_dentry_remote() argument 105 return dentry->d_flags & OVL_D_REVALIDATE; in ovl_dentry_remote() 108 void ovl_dentry_update_reval(struct dentry *dentry, struct dentry *realdentry) in ovl_dentry_update_reval() argument [all …]
|
D | export.c | 19 static int ovl_encode_maybe_copy_up(struct dentry *dentry) in ovl_encode_maybe_copy_up() argument 23 if (ovl_dentry_upper(dentry)) in ovl_encode_maybe_copy_up() 26 err = ovl_want_write(dentry); in ovl_encode_maybe_copy_up() 28 err = ovl_copy_up(dentry); in ovl_encode_maybe_copy_up() 29 ovl_drop_write(dentry); in ovl_encode_maybe_copy_up() 34 dentry, err); in ovl_encode_maybe_copy_up() 77 static int ovl_connectable_layer(struct dentry *dentry) in ovl_connectable_layer() argument 79 struct ovl_entry *oe = OVL_E(dentry); in ovl_connectable_layer() 82 if (dentry == dentry->d_sb->s_root) in ovl_connectable_layer() 89 if (ovl_dentry_upper(dentry) && in ovl_connectable_layer() [all …]
|
D | dir.c | 24 static int ovl_set_redirect(struct dentry *dentry, bool samedir); 26 int ovl_cleanup(struct inode *wdir, struct dentry *wdentry) in ovl_cleanup() 45 struct dentry *ovl_lookup_temp(struct dentry *workdir) in ovl_lookup_temp() 47 struct dentry *temp; in ovl_lookup_temp() 65 static struct dentry *ovl_whiteout(struct ovl_fs *ofs) in ovl_whiteout() 68 struct dentry *whiteout; in ovl_whiteout() 69 struct dentry *workdir = ofs->workdir; in ovl_whiteout() 110 struct dentry *dentry) in ovl_cleanup_and_whiteout() argument 113 struct dentry *whiteout; in ovl_cleanup_and_whiteout() 122 if (d_is_dir(dentry)) in ovl_cleanup_and_whiteout() [all …]
|
D | copy_up.c | 46 int ovl_copy_xattr(struct super_block *sb, struct dentry *old, in ovl_copy_xattr() 47 struct dentry *new) in ovl_copy_xattr() 232 static int ovl_set_size(struct dentry *upperdentry, struct kstat *stat) in ovl_set_size() 242 static int ovl_set_timestamps(struct dentry *upperdentry, struct kstat *stat) in ovl_set_timestamps() 254 int ovl_set_attr(struct dentry *upperdentry, struct kstat *stat) in ovl_set_attr() 279 struct ovl_fh *ovl_encode_real_fh(struct dentry *real, bool is_upper) in ovl_encode_real_fh() 332 int ovl_set_origin(struct dentry *dentry, struct dentry *lower, in ovl_set_origin() argument 333 struct dentry *upper) in ovl_set_origin() 352 err = ovl_check_setxattr(dentry, upper, OVL_XATTR_ORIGIN, fh->buf, in ovl_set_origin() 360 static int ovl_set_upper_fh(struct ovl_fs *ofs, struct dentry *upper, in ovl_set_upper_fh() [all …]
|
D | inode.c | 17 int ovl_setattr(struct dentry *dentry, struct iattr *attr) in ovl_setattr() argument 21 struct dentry *upperdentry; in ovl_setattr() 24 err = setattr_prepare(dentry, attr); in ovl_setattr() 28 err = ovl_want_write(dentry); in ovl_setattr() 33 struct inode *realinode = d_inode(ovl_dentry_real(dentry)); in ovl_setattr() 44 err = ovl_copy_up(dentry); in ovl_setattr() 46 err = ovl_copy_up_with_data(dentry); in ovl_setattr() 50 upperdentry = ovl_dentry_upper(dentry); in ovl_setattr() 81 old_cred = ovl_override_creds(dentry->d_sb); in ovl_setattr() 83 ovl_revert_creds(dentry->d_sb, old_cred); in ovl_setattr() [all …]
|
D | namei.c | 28 static int ovl_check_redirect(struct dentry *dentry, struct ovl_lookup_data *d, in ovl_check_redirect() argument 35 buf = ovl_get_redirect_xattr(ofs, dentry, prelen + strlen(post)); in ovl_check_redirect() 64 static int ovl_acceptable(void *ctx, struct dentry *dentry) in ovl_acceptable() argument 70 if (!d_is_dir(dentry)) in ovl_acceptable() 74 if (d_unhashed(dentry)) in ovl_acceptable() 78 return is_subdir(dentry, ((struct vfsmount *)ctx)->mnt_root); in ovl_acceptable() 108 static struct ovl_fh *ovl_get_fh(struct ovl_fs *ofs, struct dentry *dentry, in ovl_get_fh() argument 115 res = ovl_do_getxattr(ofs, dentry, ox, NULL, 0); in ovl_get_fh() 129 res = ovl_do_getxattr(ofs, dentry, ox, fh->buf, res); in ovl_get_fh() 154 struct dentry *ovl_decode_real_fh(struct ovl_fh *fh, struct vfsmount *mnt, in ovl_decode_real_fh() [all …]
|
/fs/debugfs/ |
D | inode.c | 45 static int debugfs_setattr(struct dentry *dentry, struct iattr *ia) in debugfs_setattr() argument 51 return simple_setattr(dentry, ia); in debugfs_setattr() 180 static int debugfs_show_options(struct seq_file *m, struct dentry *root) in debugfs_show_options() 211 static void debugfs_release_dentry(struct dentry *dentry) in debugfs_release_dentry() argument 213 struct debugfs_fsdata *fsd = dentry->d_fsdata; in debugfs_release_dentry() 223 struct debugfs_fsdata *fsd = path->dentry->d_fsdata; in debugfs_automount() 225 return fsd->automount(path->dentry, d_inode(path->dentry)->i_private); in debugfs_automount() 268 static struct dentry *debug_mount(struct file_system_type *fs_type, in debug_mount() 298 struct dentry *debugfs_lookup(const char *name, struct dentry *parent) in debugfs_lookup() 300 struct dentry *dentry; in debugfs_lookup() local [all …]
|
/fs/autofs/ |
D | root.c | 13 static int autofs_dir_symlink(struct inode *, struct dentry *, const char *); 14 static int autofs_dir_unlink(struct inode *, struct dentry *); 15 static int autofs_dir_rmdir(struct inode *, struct dentry *); 16 static int autofs_dir_mkdir(struct inode *, struct dentry *, umode_t); 23 static struct dentry *autofs_lookup(struct inode *, 24 struct dentry *, unsigned int); 27 static void autofs_dentry_release(struct dentry *); 63 static void autofs_del_active(struct dentry *dentry) in autofs_del_active() argument 65 struct autofs_sb_info *sbi = autofs_sbi(dentry->d_sb); in autofs_del_active() 68 ino = autofs_dentry_ino(dentry); in autofs_del_active() [all …]
|
D | expire.c | 11 static inline int autofs_can_expire(struct dentry *dentry, in autofs_can_expire() argument 14 struct autofs_info *ino = autofs_dentry_ino(dentry); in autofs_can_expire() 30 struct dentry *dentry, unsigned int how) in autofs_mount_busy() argument 32 struct dentry *top = dentry; in autofs_mount_busy() 33 struct path path = {.mnt = mnt, .dentry = dentry}; in autofs_mount_busy() 36 pr_debug("dentry %p %pd\n", dentry, dentry); in autofs_mount_busy() 43 if (is_autofs_dentry(path.dentry)) { in autofs_mount_busy() 44 struct autofs_sb_info *sbi = autofs_sbi(path.dentry->d_sb); in autofs_mount_busy() 74 static struct dentry *positive_after(struct dentry *p, struct dentry *child) in positive_after() 79 child = list_first_entry(&p->d_subdirs, struct dentry, d_child); in positive_after() [all …]
|
/fs/ocfs2/ |
D | dcache.c | 28 void ocfs2_dentry_attach_gen(struct dentry *dentry) in ocfs2_dentry_attach_gen() argument 31 OCFS2_I(d_inode(dentry->d_parent))->ip_dir_lock_gen; in ocfs2_dentry_attach_gen() 32 BUG_ON(d_inode(dentry)); in ocfs2_dentry_attach_gen() 33 dentry->d_fsdata = (void *)gen; in ocfs2_dentry_attach_gen() 37 static int ocfs2_dentry_revalidate(struct dentry *dentry, unsigned int flags) in ocfs2_dentry_revalidate() argument 46 inode = d_inode(dentry); in ocfs2_dentry_revalidate() 47 osb = OCFS2_SB(dentry->d_sb); in ocfs2_dentry_revalidate() 49 trace_ocfs2_dentry_revalidate(dentry, dentry->d_name.len, in ocfs2_dentry_revalidate() 50 dentry->d_name.name); in ocfs2_dentry_revalidate() 57 unsigned long gen = (unsigned long) dentry->d_fsdata; in ocfs2_dentry_revalidate() [all …]
|
/fs/tracefs/ |
D | inode.c | 55 static char *get_dname(struct dentry *dentry) in get_dname() argument 59 int len = dentry->d_name.len; in get_dname() 61 dname = dentry->d_name.name; in get_dname() 70 static int tracefs_syscall_mkdir(struct inode *inode, struct dentry *dentry, umode_t mode) in tracefs_syscall_mkdir() argument 75 name = get_dname(dentry); in tracefs_syscall_mkdir() 93 static int tracefs_syscall_rmdir(struct inode *inode, struct dentry *dentry) in tracefs_syscall_rmdir() argument 98 name = get_dname(dentry); in tracefs_syscall_rmdir() 110 inode_unlock(dentry->d_inode); in tracefs_syscall_rmdir() 115 inode_lock(dentry->d_inode); in tracefs_syscall_rmdir() 164 static void change_gid(struct dentry *dentry, kgid_t gid) in change_gid() argument [all …]
|
/fs/ecryptfs/ |
D | inode.c | 24 static struct dentry *lock_parent(struct dentry *dentry) in lock_parent() argument 26 struct dentry *dir; in lock_parent() 28 dir = dget_parent(dentry); in lock_parent() 33 static void unlock_dir(struct dentry *dir) in unlock_dir() 123 static int ecryptfs_interpose(struct dentry *lower_dentry, in ecryptfs_interpose() 124 struct dentry *dentry, struct super_block *sb) in ecryptfs_interpose() argument 130 d_instantiate(dentry, inode); in ecryptfs_interpose() 135 static int ecryptfs_do_unlink(struct inode *dir, struct dentry *dentry, in ecryptfs_do_unlink() argument 138 struct dentry *lower_dentry = ecryptfs_dentry_to_lower(dentry); in ecryptfs_do_unlink() 139 struct dentry *lower_dir_dentry; in ecryptfs_do_unlink() [all …]
|
/fs/ceph/ |
D | dir.c | 33 static int __dir_lease_try_check(const struct dentry *dentry); 38 static int ceph_d_init(struct dentry *dentry) in ceph_d_init() argument 41 struct ceph_mds_client *mdsc = ceph_sb_to_mdsc(dentry->d_sb); in ceph_d_init() 47 di->dentry = dentry; in ceph_d_init() 50 dentry->d_fsdata = di; in ceph_d_init() 127 static struct dentry * 128 __dcache_find_get_entry(struct dentry *parent, u64 idx, in __dcache_find_get_entry() 132 struct dentry *dentry; in __dcache_find_get_entry() local 133 unsigned idx_mask = (PAGE_SIZE / sizeof(struct dentry *)) - 1; in __dcache_find_get_entry() 134 loff_t ptr_pos = idx * sizeof(struct dentry *); in __dcache_find_get_entry() [all …]
|
/fs/exportfs/ |
D | expfs.c | 24 static int get_name(const struct path *path, char *name, struct dentry *child); 27 static int exportfs_get_name(struct vfsmount *mnt, struct dentry *dir, in exportfs_get_name() 28 char *name, struct dentry *child) in exportfs_get_name() 31 struct path path = {.mnt = mnt, .dentry = dir}; in exportfs_get_name() 42 static struct dentry * 43 find_acceptable_alias(struct dentry *result, in find_acceptable_alias() 44 int (*acceptable)(void *context, struct dentry *dentry), in find_acceptable_alias() argument 47 struct dentry *dentry, *toput = NULL; in find_acceptable_alias() local 55 hlist_for_each_entry(dentry, &inode->i_dentry, d_u.d_alias) { in find_acceptable_alias() 56 dget(dentry); in find_acceptable_alias() [all …]
|
/fs/reiserfs/ |
D | xattr.c | 66 static int xattr_create(struct inode *dir, struct dentry *dentry, int mode) in xattr_create() argument 69 return dir->i_op->create(dir, dentry, mode, true); in xattr_create() 73 static int xattr_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode) in xattr_mkdir() argument 76 return dir->i_op->mkdir(dir, dentry, mode); in xattr_mkdir() 85 static int xattr_unlink(struct inode *dir, struct dentry *dentry) in xattr_unlink() argument 91 inode_lock_nested(d_inode(dentry), I_MUTEX_CHILD); in xattr_unlink() 92 error = dir->i_op->unlink(dir, dentry); in xattr_unlink() 93 inode_unlock(d_inode(dentry)); in xattr_unlink() 96 d_delete(dentry); in xattr_unlink() 100 static int xattr_rmdir(struct inode *dir, struct dentry *dentry) in xattr_rmdir() argument [all …]
|
/fs/configfs/ |
D | dir.c | 47 static void configfs_d_iput(struct dentry * dentry, in configfs_d_iput() argument 50 struct configfs_dirent *sd = dentry->d_fsdata; in configfs_d_iput() 61 if (sd->s_dentry == dentry) in configfs_d_iput() 245 struct dentry * dentry, void * element, in configfs_make_dirent() argument 255 sd->s_dentry = dentry; in configfs_make_dirent() 256 if (dentry) in configfs_make_dirent() 257 dentry->d_fsdata = configfs_get(sd); in configfs_make_dirent() 262 static void configfs_remove_dirent(struct dentry *dentry) in configfs_remove_dirent() argument 264 struct configfs_dirent *sd = dentry->d_fsdata; in configfs_remove_dirent() 283 static int configfs_create_dir(struct config_item *item, struct dentry *dentry, in configfs_create_dir() argument [all …]
|
/fs/9p/ |
D | fid.c | 29 static inline void __add_fid(struct dentry *dentry, struct p9_fid *fid) in __add_fid() argument 31 hlist_add_head(&fid->dlist, (struct hlist_head *)&dentry->d_fsdata); in __add_fid() 34 void v9fs_fid_add(struct dentry *dentry, struct p9_fid *fid) in v9fs_fid_add() argument 36 spin_lock(&dentry->d_lock); in v9fs_fid_add() 37 __add_fid(dentry, fid); in v9fs_fid_add() 38 spin_unlock(&dentry->d_lock); in v9fs_fid_add() 49 static struct p9_fid *v9fs_fid_find(struct dentry *dentry, kuid_t uid, int any) in v9fs_fid_find() argument 54 dentry, dentry, from_kuid(&init_user_ns, uid), in v9fs_fid_find() 58 if (dentry->d_fsdata) { in v9fs_fid_find() 59 struct hlist_head *h = (struct hlist_head *)&dentry->d_fsdata; in v9fs_fid_find() [all …]
|
/fs/nfs/ |
D | dir.c | 416 int nfs_same_file(struct dentry *dentry, struct nfs_entry *entry) in nfs_same_file() argument 421 if (d_really_is_negative(dentry)) in nfs_same_file() 424 inode = d_inode(dentry); in nfs_same_file() 483 void nfs_prime_dcache(struct dentry *parent, struct nfs_entry *entry, in nfs_prime_dcache() 488 struct dentry *dentry; in nfs_prime_dcache() local 489 struct dentry *alias; in nfs_prime_dcache() 513 dentry = d_lookup(parent, &filename); in nfs_prime_dcache() 515 if (!dentry) { in nfs_prime_dcache() 516 dentry = d_alloc_parallel(parent, &filename, &wq); in nfs_prime_dcache() 517 if (IS_ERR(dentry)) in nfs_prime_dcache() [all …]
|
D | unlink.c | 49 struct inode *dir = d_inode(data->dentry->d_parent); in nfs_async_unlink_done() 66 struct dentry *dentry = data->dentry; in nfs_async_unlink_release() local 67 struct super_block *sb = dentry->d_sb; in nfs_async_unlink_release() 69 up_read_non_owner(&NFS_I(d_inode(dentry->d_parent))->rmdir_sem); in nfs_async_unlink_release() 70 d_lookup_done(dentry); in nfs_async_unlink_release() 72 dput(dentry); in nfs_async_unlink_release() 79 struct inode *dir = d_inode(data->dentry->d_parent); in nfs_unlink_prepare() 104 struct inode *dir = d_inode(data->dentry->d_parent); in nfs_do_call_unlink() 109 NFS_PROTO(dir)->unlink_setup(&msg, data->dentry, inode); in nfs_do_call_unlink() 117 static int nfs_call_unlink(struct dentry *dentry, struct inode *inode, struct nfs_unlinkdata *data) in nfs_call_unlink() argument [all …]
|
/fs/cachefiles/ |
D | xattr.c | 27 struct dentry *dentry = object->dentry; in cachefiles_check_object_type() local 31 ASSERT(dentry); in cachefiles_check_object_type() 32 ASSERT(d_backing_inode(dentry)); in cachefiles_check_object_type() 42 ret = vfs_setxattr(dentry, cachefiles_xattr_cache, type, 2, in cachefiles_check_object_type() 51 dentry, d_backing_inode(dentry)->i_ino, in cachefiles_check_object_type() 57 ret = vfs_getxattr(dentry, cachefiles_xattr_cache, xtype, 3); in cachefiles_check_object_type() 63 dentry, d_backing_inode(dentry)->i_ino, in cachefiles_check_object_type() 83 d_backing_inode(dentry)->i_ino); in cachefiles_check_object_type() 90 dentry, d_backing_inode(dentry)->i_ino, in cachefiles_check_object_type() 102 struct dentry *dentry = object->dentry; in cachefiles_set_object_xattr() local [all …]
|
/fs/nfsd/ |
D | nfsfh.c | 28 static int nfsd_acceptable(void *expv, struct dentry *dentry) in nfsd_acceptable() argument 32 struct dentry *tdentry; in nfsd_acceptable() 33 struct dentry *parent; in nfsd_acceptable() 38 tdentry = dget(dentry); in nfsd_acceptable() 39 while (tdentry != exp->ex_path.dentry && !IS_ROOT(tdentry)) { in nfsd_acceptable() 51 if (tdentry != exp->ex_path.dentry) in nfsd_acceptable() 53 rv = (tdentry == exp->ex_path.dentry); in nfsd_acceptable() 64 nfsd_mode_check(struct svc_rqst *rqstp, struct dentry *dentry, in nfsd_mode_check() argument 67 umode_t mode = d_inode(dentry)->i_mode & S_IFMT; in nfsd_mode_check() 72 if (mode == S_IFDIR && !d_can_lookup(dentry)) { in nfsd_mode_check() [all …]
|
/fs/affs/ |
D | namei.c | 46 __affs_hash_dentry(const struct dentry *dentry, struct qstr *qstr, toupper_t toupper, bool notrunca… in __affs_hash_dentry() argument 57 hash = init_name_hash(dentry); in __affs_hash_dentry() 67 affs_hash_dentry(const struct dentry *dentry, struct qstr *qstr) in affs_hash_dentry() argument 69 return __affs_hash_dentry(dentry, qstr, affs_toupper, in affs_hash_dentry() 70 affs_nofilenametruncate(dentry)); in affs_hash_dentry() 75 affs_intl_hash_dentry(const struct dentry *dentry, struct qstr *qstr) in affs_intl_hash_dentry() argument 77 return __affs_hash_dentry(dentry, qstr, affs_intl_toupper, in affs_intl_hash_dentry() 78 affs_nofilenametruncate(dentry)); in affs_intl_hash_dentry() 116 affs_compare_dentry(const struct dentry *dentry, in affs_compare_dentry() argument 121 affs_nofilenametruncate(dentry)); in affs_compare_dentry() [all …]
|