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()
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()
460 static int tracefs_d_revalidate(struct dentry *dentry, unsigned int flags) in tracefs_d_revalidate() argument
462 struct eventfs_inode *ei = dentry->d_fsdata; in tracefs_d_revalidate()
533 struct dentry *tracefs_start_creating(const char *name, struct dentry *parent) in tracefs_start_creating()
535 struct dentry *dentry; in tracefs_start_creating() local
555 dentry = ERR_PTR(-ENOENT); in tracefs_start_creating()
557 dentry = lookup_one_len(name, parent, strlen(name)); in tracefs_start_creating()
558 if (!IS_ERR(dentry) && d_inode(dentry)) { in tracefs_start_creating()
559 dput(dentry); in tracefs_start_creating()
560 dentry = ERR_PTR(-EEXIST); in tracefs_start_creating()
563 if (IS_ERR(dentry)) { in tracefs_start_creating()
568 return dentry; in tracefs_start_creating()
571 struct dentry *tracefs_failed_creating(struct dentry *dentry) in tracefs_failed_creating() argument
573 inode_unlock(d_inode(dentry->d_parent)); in tracefs_failed_creating()
574 dput(dentry); in tracefs_failed_creating()
579 struct dentry *tracefs_end_creating(struct dentry *dentry) in tracefs_end_creating() argument
581 inode_unlock(d_inode(dentry->d_parent)); in tracefs_end_creating()
582 return dentry; in tracefs_end_creating()
586 static struct inode *instance_inode(struct dentry *parent, struct inode *inode) in instance_inode()
631 struct dentry *tracefs_create_file(const char *name, umode_t mode, in tracefs_create_file()
632 struct dentry *parent, void *data, in tracefs_create_file()
636 struct dentry *dentry; in tracefs_create_file() local
645 dentry = tracefs_start_creating(name, parent); in tracefs_create_file()
647 if (IS_ERR(dentry)) in tracefs_create_file()
650 inode = tracefs_get_inode(dentry->d_sb); in tracefs_create_file()
652 return tracefs_failed_creating(dentry); in tracefs_create_file()
661 inode->i_uid = d_inode(dentry->d_parent)->i_uid; in tracefs_create_file()
662 inode->i_gid = d_inode(dentry->d_parent)->i_gid; in tracefs_create_file()
663 d_instantiate(dentry, inode); in tracefs_create_file()
664 fsnotify_create(d_inode(dentry->d_parent), dentry); in tracefs_create_file()
665 return tracefs_end_creating(dentry); in tracefs_create_file()
668 static struct dentry *__create_dir(const char *name, struct dentry *parent, in __create_dir()
672 struct dentry *dentry = tracefs_start_creating(name, parent); in __create_dir() local
675 if (IS_ERR(dentry)) in __create_dir()
678 inode = tracefs_get_inode(dentry->d_sb); in __create_dir()
680 return tracefs_failed_creating(dentry); in __create_dir()
686 inode->i_uid = d_inode(dentry->d_parent)->i_uid; in __create_dir()
687 inode->i_gid = d_inode(dentry->d_parent)->i_gid; in __create_dir()
694 d_instantiate(dentry, inode); in __create_dir()
695 inc_nlink(d_inode(dentry->d_parent)); in __create_dir()
696 fsnotify_mkdir(d_inode(dentry->d_parent), dentry); in __create_dir()
697 return tracefs_end_creating(dentry); in __create_dir()
717 struct dentry *tracefs_create_dir(const char *name, struct dentry *parent) in tracefs_create_dir()
742 __init struct dentry *tracefs_create_instance_dir(const char *name, in tracefs_create_instance_dir()
743 struct dentry *parent, in tracefs_create_instance_dir()
747 struct dentry *dentry; in tracefs_create_instance_dir() local
753 dentry = __create_dir(name, parent, &tracefs_instance_dir_inode_operations); in tracefs_create_instance_dir()
754 if (!dentry) in tracefs_create_instance_dir()
760 return dentry; in tracefs_create_instance_dir()
763 static void remove_one(struct dentry *victim) in remove_one()
776 void tracefs_remove(struct dentry *dentry) in tracefs_remove() argument
778 if (IS_ERR_OR_NULL(dentry)) in tracefs_remove()
782 simple_recursive_removal(dentry, remove_one); in tracefs_remove()