Lines Matching refs:parent
245 static struct dentry *start_creating(const char *name, struct dentry *parent) in start_creating() argument
252 if (IS_ERR(parent)) in start_creating()
253 return parent; in start_creating()
265 if (!parent) in start_creating()
266 parent = debugfs_mount->mnt_root; in start_creating()
268 mutex_lock(&d_inode(parent)->i_mutex); in start_creating()
269 dentry = lookup_one_len(name, parent, strlen(name)); in start_creating()
276 mutex_unlock(&d_inode(parent)->i_mutex); in start_creating()
324 struct dentry *parent, void *data, in debugfs_create_file() argument
333 dentry = start_creating(name, parent); in debugfs_create_file()
379 struct dentry *parent, void *data, in debugfs_create_file_size() argument
383 struct dentry *de = debugfs_create_file(name, mode, parent, data, fops); in debugfs_create_file_size()
409 struct dentry *debugfs_create_dir(const char *name, struct dentry *parent) in debugfs_create_dir() argument
411 struct dentry *dentry = start_creating(name, parent); in debugfs_create_dir()
446 struct dentry *parent, in debugfs_create_automount() argument
450 struct dentry *dentry = start_creating(name, parent); in debugfs_create_automount()
492 struct dentry *debugfs_create_symlink(const char *name, struct dentry *parent, in debugfs_create_symlink() argument
501 dentry = start_creating(name, parent); in debugfs_create_symlink()
520 static int __debugfs_remove(struct dentry *dentry, struct dentry *parent) in __debugfs_remove() argument
527 ret = simple_rmdir(d_inode(parent), dentry); in __debugfs_remove()
529 simple_unlink(d_inode(parent), dentry); in __debugfs_remove()
553 struct dentry *parent; in debugfs_remove() local
559 parent = dentry->d_parent; in debugfs_remove()
560 if (!parent || d_really_is_negative(parent)) in debugfs_remove()
563 mutex_lock(&d_inode(parent)->i_mutex); in debugfs_remove()
564 ret = __debugfs_remove(dentry, parent); in debugfs_remove()
565 mutex_unlock(&d_inode(parent)->i_mutex); in debugfs_remove()
586 struct dentry *child, *parent; in debugfs_remove_recursive() local
591 parent = dentry->d_parent; in debugfs_remove_recursive()
592 if (!parent || d_really_is_negative(parent)) in debugfs_remove_recursive()
595 parent = dentry; in debugfs_remove_recursive()
597 mutex_lock(&d_inode(parent)->i_mutex); in debugfs_remove_recursive()
604 spin_lock(&parent->d_lock); in debugfs_remove_recursive()
605 list_for_each_entry(child, &parent->d_subdirs, d_child) { in debugfs_remove_recursive()
611 spin_unlock(&parent->d_lock); in debugfs_remove_recursive()
612 mutex_unlock(&d_inode(parent)->i_mutex); in debugfs_remove_recursive()
613 parent = child; in debugfs_remove_recursive()
617 spin_unlock(&parent->d_lock); in debugfs_remove_recursive()
619 if (!__debugfs_remove(child, parent)) in debugfs_remove_recursive()
631 spin_unlock(&parent->d_lock); in debugfs_remove_recursive()
633 mutex_unlock(&d_inode(parent)->i_mutex); in debugfs_remove_recursive()
634 child = parent; in debugfs_remove_recursive()
635 parent = parent->d_parent; in debugfs_remove_recursive()
636 mutex_lock(&d_inode(parent)->i_mutex); in debugfs_remove_recursive()
642 if (!__debugfs_remove(child, parent)) in debugfs_remove_recursive()
644 mutex_unlock(&d_inode(parent)->i_mutex); in debugfs_remove_recursive()