Lines Matching refs:dentry
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()
241 static int tracefs_show_options(struct seq_file *m, struct dentry *root) in tracefs_show_options()
297 static struct dentry *trace_mount(struct file_system_type *fs_type, in trace_mount()
312 static struct dentry *start_creating(const char *name, struct dentry *parent) in start_creating()
314 struct dentry *dentry; in start_creating() local
334 dentry = ERR_PTR(-ENOENT); in start_creating()
336 dentry = lookup_one_len(name, parent, strlen(name)); in start_creating()
337 if (!IS_ERR(dentry) && dentry->d_inode) { in start_creating()
338 dput(dentry); in start_creating()
339 dentry = ERR_PTR(-EEXIST); in start_creating()
342 if (IS_ERR(dentry)) { in start_creating()
347 return dentry; in start_creating()
350 static struct dentry *failed_creating(struct dentry *dentry) in failed_creating() argument
352 inode_unlock(dentry->d_parent->d_inode); in failed_creating()
353 dput(dentry); in failed_creating()
358 static struct dentry *end_creating(struct dentry *dentry) in end_creating() argument
360 inode_unlock(dentry->d_parent->d_inode); in end_creating()
361 return dentry; in end_creating()
390 struct dentry *tracefs_create_file(const char *name, umode_t mode, in tracefs_create_file()
391 struct dentry *parent, void *data, in tracefs_create_file()
394 struct dentry *dentry; in tracefs_create_file() local
403 dentry = start_creating(name, parent); in tracefs_create_file()
405 if (IS_ERR(dentry)) in tracefs_create_file()
408 inode = tracefs_get_inode(dentry->d_sb); in tracefs_create_file()
410 return failed_creating(dentry); in tracefs_create_file()
415 d_instantiate(dentry, inode); in tracefs_create_file()
416 fsnotify_create(dentry->d_parent->d_inode, dentry); in tracefs_create_file()
417 return end_creating(dentry); in tracefs_create_file()
420 static struct dentry *__create_dir(const char *name, struct dentry *parent, in __create_dir()
423 struct dentry *dentry = start_creating(name, parent); in __create_dir() local
426 if (IS_ERR(dentry)) in __create_dir()
429 inode = tracefs_get_inode(dentry->d_sb); in __create_dir()
431 return failed_creating(dentry); in __create_dir()
439 d_instantiate(dentry, inode); in __create_dir()
440 inc_nlink(dentry->d_parent->d_inode); in __create_dir()
441 fsnotify_mkdir(dentry->d_parent->d_inode, dentry); in __create_dir()
442 return end_creating(dentry); in __create_dir()
462 struct dentry *tracefs_create_dir(const char *name, struct dentry *parent) in tracefs_create_dir()
484 __init struct dentry *tracefs_create_instance_dir(const char *name, in tracefs_create_instance_dir()
485 struct dentry *parent, in tracefs_create_instance_dir()
489 struct dentry *dentry; in tracefs_create_instance_dir() local
495 dentry = __create_dir(name, parent, &tracefs_dir_inode_operations); in tracefs_create_instance_dir()
496 if (!dentry) in tracefs_create_instance_dir()
502 return dentry; in tracefs_create_instance_dir()
505 static void remove_one(struct dentry *victim) in remove_one()
518 void tracefs_remove(struct dentry *dentry) in tracefs_remove() argument
520 if (IS_ERR_OR_NULL(dentry)) in tracefs_remove()
524 simple_recursive_removal(dentry, remove_one); in tracefs_remove()