Lines Matching refs:parent
250 static struct dentry *start_creating(const char *name, struct dentry *parent) in start_creating() argument
257 if (IS_ERR(parent)) in start_creating()
258 return parent; in start_creating()
270 if (!parent) in start_creating()
271 parent = debugfs_mount->mnt_root; in start_creating()
273 mutex_lock(&d_inode(parent)->i_mutex); in start_creating()
274 dentry = lookup_one_len(name, parent, strlen(name)); in start_creating()
281 mutex_unlock(&d_inode(parent)->i_mutex); in start_creating()
329 struct dentry *parent, void *data, in debugfs_create_file() argument
338 dentry = start_creating(name, parent); in debugfs_create_file()
384 struct dentry *parent, void *data, in debugfs_create_file_size() argument
388 struct dentry *de = debugfs_create_file(name, mode, parent, data, fops); in debugfs_create_file_size()
414 struct dentry *debugfs_create_dir(const char *name, struct dentry *parent) in debugfs_create_dir() argument
416 struct dentry *dentry = start_creating(name, parent); in debugfs_create_dir()
451 struct dentry *parent, in debugfs_create_automount() argument
455 struct dentry *dentry = start_creating(name, parent); in debugfs_create_automount()
497 struct dentry *debugfs_create_symlink(const char *name, struct dentry *parent, in debugfs_create_symlink() argument
506 dentry = start_creating(name, parent); in debugfs_create_symlink()
525 static int __debugfs_remove(struct dentry *dentry, struct dentry *parent) in __debugfs_remove() argument
532 ret = simple_rmdir(d_inode(parent), dentry); in __debugfs_remove()
534 simple_unlink(d_inode(parent), dentry); in __debugfs_remove()
557 struct dentry *parent; in debugfs_remove() local
563 parent = dentry->d_parent; in debugfs_remove()
564 if (!parent || d_really_is_negative(parent)) in debugfs_remove()
567 mutex_lock(&d_inode(parent)->i_mutex); in debugfs_remove()
568 ret = __debugfs_remove(dentry, parent); in debugfs_remove()
569 mutex_unlock(&d_inode(parent)->i_mutex); in debugfs_remove()
589 struct dentry *child, *parent; in debugfs_remove_recursive() local
594 parent = dentry->d_parent; in debugfs_remove_recursive()
595 if (!parent || d_really_is_negative(parent)) in debugfs_remove_recursive()
598 parent = dentry; in debugfs_remove_recursive()
600 mutex_lock(&d_inode(parent)->i_mutex); in debugfs_remove_recursive()
607 spin_lock(&parent->d_lock); in debugfs_remove_recursive()
608 list_for_each_entry(child, &parent->d_subdirs, d_child) { in debugfs_remove_recursive()
614 spin_unlock(&parent->d_lock); in debugfs_remove_recursive()
615 mutex_unlock(&d_inode(parent)->i_mutex); in debugfs_remove_recursive()
616 parent = child; in debugfs_remove_recursive()
620 spin_unlock(&parent->d_lock); in debugfs_remove_recursive()
622 if (!__debugfs_remove(child, parent)) in debugfs_remove_recursive()
634 spin_unlock(&parent->d_lock); in debugfs_remove_recursive()
636 mutex_unlock(&d_inode(parent)->i_mutex); in debugfs_remove_recursive()
637 child = parent; in debugfs_remove_recursive()
638 parent = parent->d_parent; in debugfs_remove_recursive()
639 mutex_lock(&d_inode(parent)->i_mutex); in debugfs_remove_recursive()
645 if (!__debugfs_remove(child, parent)) in debugfs_remove_recursive()
647 mutex_unlock(&d_inode(parent)->i_mutex); in debugfs_remove_recursive()