Lines Matching refs:parent
317 static struct dentry *start_creating(const char *name, struct dentry *parent) in start_creating() argument
334 if (!parent) in start_creating()
335 parent = tracefs_mount->mnt_root; in start_creating()
337 mutex_lock(&parent->d_inode->i_mutex); in start_creating()
338 dentry = lookup_one_len(name, parent, strlen(name)); in start_creating()
345 mutex_unlock(&parent->d_inode->i_mutex); in start_creating()
393 struct dentry *parent, void *data, in tracefs_create_file() argument
402 dentry = start_creating(name, parent); in tracefs_create_file()
419 static struct dentry *__create_dir(const char *name, struct dentry *parent, in __create_dir() argument
422 struct dentry *dentry = start_creating(name, parent); in __create_dir()
461 struct dentry *tracefs_create_dir(const char *name, struct dentry *parent) in tracefs_create_dir() argument
463 return __create_dir(name, parent, &simple_dir_inode_operations); in tracefs_create_dir()
483 struct dentry *tracefs_create_instance_dir(const char *name, struct dentry *parent, in tracefs_create_instance_dir() argument
493 dentry = __create_dir(name, parent, &tracefs_dir_inode_operations); in tracefs_create_instance_dir()
503 static int __tracefs_remove(struct dentry *dentry, struct dentry *parent) in __tracefs_remove() argument
512 ret = simple_rmdir(parent->d_inode, dentry); in __tracefs_remove()
515 simple_unlink(parent->d_inode, dentry); in __tracefs_remove()
537 struct dentry *parent; in tracefs_remove() local
543 parent = dentry->d_parent; in tracefs_remove()
544 if (!parent || !parent->d_inode) in tracefs_remove()
547 mutex_lock(&parent->d_inode->i_mutex); in tracefs_remove()
548 ret = __tracefs_remove(dentry, parent); in tracefs_remove()
549 mutex_unlock(&parent->d_inode->i_mutex); in tracefs_remove()
564 struct dentry *child, *parent; in tracefs_remove_recursive() local
569 parent = dentry->d_parent; in tracefs_remove_recursive()
570 if (!parent || !parent->d_inode) in tracefs_remove_recursive()
573 parent = dentry; in tracefs_remove_recursive()
575 mutex_lock(&parent->d_inode->i_mutex); in tracefs_remove_recursive()
582 spin_lock(&parent->d_lock); in tracefs_remove_recursive()
583 list_for_each_entry(child, &parent->d_subdirs, d_child) { in tracefs_remove_recursive()
589 spin_unlock(&parent->d_lock); in tracefs_remove_recursive()
590 mutex_unlock(&parent->d_inode->i_mutex); in tracefs_remove_recursive()
591 parent = child; in tracefs_remove_recursive()
595 spin_unlock(&parent->d_lock); in tracefs_remove_recursive()
597 if (!__tracefs_remove(child, parent)) in tracefs_remove_recursive()
609 spin_unlock(&parent->d_lock); in tracefs_remove_recursive()
611 mutex_unlock(&parent->d_inode->i_mutex); in tracefs_remove_recursive()
612 child = parent; in tracefs_remove_recursive()
613 parent = parent->d_parent; in tracefs_remove_recursive()
614 mutex_lock(&parent->d_inode->i_mutex); in tracefs_remove_recursive()
620 if (!__tracefs_remove(child, parent)) in tracefs_remove_recursive()
622 mutex_unlock(&parent->d_inode->i_mutex); in tracefs_remove_recursive()