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()
344 mutex_unlock(&parent->d_inode->i_mutex); in start_creating()
389 struct dentry *parent, void *data, in tracefs_create_file() argument
398 dentry = start_creating(name, parent); in tracefs_create_file()
415 static struct dentry *__create_dir(const char *name, struct dentry *parent, in __create_dir() argument
418 struct dentry *dentry = start_creating(name, parent); in __create_dir()
457 struct dentry *tracefs_create_dir(const char *name, struct dentry *parent) in tracefs_create_dir() argument
459 return __create_dir(name, parent, &simple_dir_inode_operations); in tracefs_create_dir()
479 struct dentry *tracefs_create_instance_dir(const char *name, struct dentry *parent, in tracefs_create_instance_dir() argument
489 dentry = __create_dir(name, parent, &tracefs_dir_inode_operations); in tracefs_create_instance_dir()
504 static int __tracefs_remove(struct dentry *dentry, struct dentry *parent) in __tracefs_remove() argument
513 ret = simple_rmdir(parent->d_inode, dentry); in __tracefs_remove()
516 simple_unlink(parent->d_inode, dentry); in __tracefs_remove()
538 struct dentry *parent; in tracefs_remove() local
544 parent = dentry->d_parent; in tracefs_remove()
545 if (!parent || !parent->d_inode) in tracefs_remove()
548 mutex_lock(&parent->d_inode->i_mutex); in tracefs_remove()
549 ret = __tracefs_remove(dentry, parent); in tracefs_remove()
550 mutex_unlock(&parent->d_inode->i_mutex); in tracefs_remove()
565 struct dentry *child, *parent; in tracefs_remove_recursive() local
570 parent = dentry->d_parent; in tracefs_remove_recursive()
571 if (!parent || !parent->d_inode) in tracefs_remove_recursive()
574 parent = dentry; in tracefs_remove_recursive()
576 mutex_lock(&parent->d_inode->i_mutex); in tracefs_remove_recursive()
583 spin_lock(&parent->d_lock); in tracefs_remove_recursive()
584 list_for_each_entry(child, &parent->d_subdirs, d_child) { in tracefs_remove_recursive()
590 spin_unlock(&parent->d_lock); in tracefs_remove_recursive()
591 mutex_unlock(&parent->d_inode->i_mutex); in tracefs_remove_recursive()
592 parent = child; in tracefs_remove_recursive()
596 spin_unlock(&parent->d_lock); in tracefs_remove_recursive()
598 if (!__tracefs_remove(child, parent)) in tracefs_remove_recursive()
610 spin_unlock(&parent->d_lock); in tracefs_remove_recursive()
612 mutex_unlock(&parent->d_inode->i_mutex); in tracefs_remove_recursive()
613 child = parent; in tracefs_remove_recursive()
614 parent = parent->d_parent; in tracefs_remove_recursive()
615 mutex_lock(&parent->d_inode->i_mutex); in tracefs_remove_recursive()
621 if (!__tracefs_remove(child, parent)) in tracefs_remove_recursive()
623 mutex_unlock(&parent->d_inode->i_mutex); in tracefs_remove_recursive()