Lines Matching refs:dentry

97 static char *get_dname(struct dentry *dentry)  in get_dname()  argument
101 int len = dentry->d_name.len; in get_dname()
103 dname = dentry->d_name.name; in get_dname()
112 static struct dentry *tracefs_syscall_mkdir(struct mnt_idmap *idmap, in tracefs_syscall_mkdir()
113 struct inode *inode, struct dentry *dentry, in tracefs_syscall_mkdir() argument
120 name = get_dname(dentry); in tracefs_syscall_mkdir()
147 static int tracefs_syscall_rmdir(struct inode *inode, struct dentry *dentry) in tracefs_syscall_rmdir() argument
152 name = get_dname(dentry); in tracefs_syscall_rmdir()
164 inode_unlock(d_inode(dentry)); in tracefs_syscall_rmdir()
169 inode_lock(d_inode(dentry)); in tracefs_syscall_rmdir()
226 struct inode *inode = d_backing_inode(path->dentry); in tracefs_getattr()
233 static int tracefs_setattr(struct mnt_idmap *idmap, struct dentry *dentry, in tracefs_setattr() argument
237 struct inode *inode = d_inode(dentry); in tracefs_setattr()
246 return simple_setattr(idmap, dentry, attr); in tracefs_setattr()
405 static int tracefs_show_options(struct seq_file *m, struct dentry *root) in tracefs_show_options()
454 static void tracefs_d_release(struct dentry *dentry) in tracefs_d_release() argument
456 if (dentry->d_fsdata) in tracefs_d_release()
457 eventfs_d_release(dentry); in tracefs_d_release()
461 struct dentry *dentry, unsigned int flags) in tracefs_d_revalidate() argument
463 struct eventfs_inode *ei = dentry->d_fsdata; in tracefs_d_revalidate()
468 static int tracefs_d_delete(const struct dentry *dentry) in tracefs_d_delete() argument
475 return dentry->d_fsdata == NULL; in tracefs_d_delete()
545 struct dentry *tracefs_start_creating(const char *name, struct dentry *parent) in tracefs_start_creating()
547 struct dentry *dentry; in tracefs_start_creating() local
565 dentry = simple_start_creating(parent, name); in tracefs_start_creating()
566 if (IS_ERR(dentry)) in tracefs_start_creating()
569 return dentry; in tracefs_start_creating()
572 struct dentry *tracefs_failed_creating(struct dentry *dentry) in tracefs_failed_creating() argument
574 inode_unlock(d_inode(dentry->d_parent)); in tracefs_failed_creating()
575 dput(dentry); in tracefs_failed_creating()
580 struct dentry *tracefs_end_creating(struct dentry *dentry) in tracefs_end_creating() argument
582 inode_unlock(d_inode(dentry->d_parent)); in tracefs_end_creating()
583 return dentry; in tracefs_end_creating()
587 static struct inode *instance_inode(struct dentry *parent, struct inode *inode) in instance_inode()
632 struct dentry *tracefs_create_file(const char *name, umode_t mode, in tracefs_create_file()
633 struct dentry *parent, void *data, in tracefs_create_file()
637 struct dentry *dentry; in tracefs_create_file() local
646 dentry = tracefs_start_creating(name, parent); in tracefs_create_file()
648 if (IS_ERR(dentry)) in tracefs_create_file()
651 inode = tracefs_get_inode(dentry->d_sb); in tracefs_create_file()
653 return tracefs_failed_creating(dentry); in tracefs_create_file()
662 inode->i_uid = d_inode(dentry->d_parent)->i_uid; in tracefs_create_file()
663 inode->i_gid = d_inode(dentry->d_parent)->i_gid; in tracefs_create_file()
664 d_instantiate(dentry, inode); in tracefs_create_file()
665 fsnotify_create(d_inode(dentry->d_parent), dentry); in tracefs_create_file()
666 return tracefs_end_creating(dentry); in tracefs_create_file()
669 static struct dentry *__create_dir(const char *name, struct dentry *parent, in __create_dir()
673 struct dentry *dentry = tracefs_start_creating(name, parent); in __create_dir() local
676 if (IS_ERR(dentry)) in __create_dir()
679 inode = tracefs_get_inode(dentry->d_sb); in __create_dir()
681 return tracefs_failed_creating(dentry); in __create_dir()
687 inode->i_uid = d_inode(dentry->d_parent)->i_uid; in __create_dir()
688 inode->i_gid = d_inode(dentry->d_parent)->i_gid; in __create_dir()
695 d_instantiate(dentry, inode); in __create_dir()
696 inc_nlink(d_inode(dentry->d_parent)); in __create_dir()
697 fsnotify_mkdir(d_inode(dentry->d_parent), dentry); in __create_dir()
698 return tracefs_end_creating(dentry); in __create_dir()
718 struct dentry *tracefs_create_dir(const char *name, struct dentry *parent) in tracefs_create_dir()
743 __init struct dentry *tracefs_create_instance_dir(const char *name, in tracefs_create_instance_dir()
744 struct dentry *parent, in tracefs_create_instance_dir()
748 struct dentry *dentry; in tracefs_create_instance_dir() local
754 dentry = __create_dir(name, parent, &tracefs_instance_dir_inode_operations); in tracefs_create_instance_dir()
755 if (!dentry) in tracefs_create_instance_dir()
761 return dentry; in tracefs_create_instance_dir()
764 static void remove_one(struct dentry *victim) in remove_one()
777 void tracefs_remove(struct dentry *dentry) in tracefs_remove() argument
779 if (IS_ERR_OR_NULL(dentry)) in tracefs_remove()
783 simple_recursive_removal(dentry, remove_one); in tracefs_remove()