Lines Matching refs:dentry

46 			   struct dentry *dentry, struct iattr *ia)  in debugfs_setattr()  argument
55 return simple_setattr(&init_user_ns, dentry, ia); in debugfs_setattr()
184 static int debugfs_show_options(struct seq_file *m, struct dentry *root) in debugfs_show_options()
215 static void debugfs_release_dentry(struct dentry *dentry) in debugfs_release_dentry() argument
217 void *fsd = dentry->d_fsdata; in debugfs_release_dentry()
220 kfree(dentry->d_fsdata); in debugfs_release_dentry()
226 f = (debugfs_automount_t)path->dentry->d_fsdata; in debugfs_automount()
227 return f(path->dentry, d_inode(path->dentry)->i_private); in debugfs_automount()
270 static struct dentry *debug_mount(struct file_system_type *fs_type, in debug_mount()
300 struct dentry *debugfs_lookup(const char *name, struct dentry *parent) in debugfs_lookup()
302 struct dentry *dentry; in debugfs_lookup() local
310 dentry = lookup_positive_unlocked(name, parent, strlen(name)); in debugfs_lookup()
311 if (IS_ERR(dentry)) in debugfs_lookup()
313 return dentry; in debugfs_lookup()
317 static struct dentry *start_creating(const char *name, struct dentry *parent) in start_creating()
319 struct dentry *dentry; in start_creating() local
350 dentry = ERR_PTR(-ENOENT); in start_creating()
352 dentry = lookup_one_len(name, parent, strlen(name)); in start_creating()
353 if (!IS_ERR(dentry) && d_really_is_positive(dentry)) { in start_creating()
354 if (d_is_dir(dentry)) in start_creating()
360 dput(dentry); in start_creating()
361 dentry = ERR_PTR(-EEXIST); in start_creating()
364 if (IS_ERR(dentry)) { in start_creating()
369 return dentry; in start_creating()
372 static struct dentry *failed_creating(struct dentry *dentry) in failed_creating() argument
374 inode_unlock(d_inode(dentry->d_parent)); in failed_creating()
375 dput(dentry); in failed_creating()
380 static struct dentry *end_creating(struct dentry *dentry) in end_creating() argument
382 inode_unlock(d_inode(dentry->d_parent)); in end_creating()
383 return dentry; in end_creating()
386 static struct dentry *__debugfs_create_file(const char *name, umode_t mode, in __debugfs_create_file()
387 struct dentry *parent, void *data, in __debugfs_create_file()
391 struct dentry *dentry; in __debugfs_create_file() local
397 dentry = start_creating(name, parent); in __debugfs_create_file()
399 if (IS_ERR(dentry)) in __debugfs_create_file()
400 return dentry; in __debugfs_create_file()
403 failed_creating(dentry); in __debugfs_create_file()
407 inode = debugfs_get_inode(dentry->d_sb); in __debugfs_create_file()
411 return failed_creating(dentry); in __debugfs_create_file()
419 dentry->d_fsdata = (void *)((unsigned long)real_fops | in __debugfs_create_file()
422 d_instantiate(dentry, inode); in __debugfs_create_file()
423 fsnotify_create(d_inode(dentry->d_parent), dentry); in __debugfs_create_file()
424 return end_creating(dentry); in __debugfs_create_file()
454 struct dentry *debugfs_create_file(const char *name, umode_t mode, in debugfs_create_file()
455 struct dentry *parent, void *data, in debugfs_create_file()
493 struct dentry *debugfs_create_file_unsafe(const char *name, umode_t mode, in debugfs_create_file_unsafe()
494 struct dentry *parent, void *data, in debugfs_create_file_unsafe()
525 struct dentry *parent, void *data, in debugfs_create_file_size()
529 struct dentry *de = debugfs_create_file(name, mode, parent, data, fops); in debugfs_create_file_size()
555 struct dentry *debugfs_create_dir(const char *name, struct dentry *parent) in debugfs_create_dir()
557 struct dentry *dentry = start_creating(name, parent); in debugfs_create_dir() local
560 if (IS_ERR(dentry)) in debugfs_create_dir()
561 return dentry; in debugfs_create_dir()
564 failed_creating(dentry); in debugfs_create_dir()
568 inode = debugfs_get_inode(dentry->d_sb); in debugfs_create_dir()
572 return failed_creating(dentry); in debugfs_create_dir()
581 d_instantiate(dentry, inode); in debugfs_create_dir()
582 inc_nlink(d_inode(dentry->d_parent)); in debugfs_create_dir()
583 fsnotify_mkdir(d_inode(dentry->d_parent), dentry); in debugfs_create_dir()
584 return end_creating(dentry); in debugfs_create_dir()
599 struct dentry *debugfs_create_automount(const char *name, in debugfs_create_automount()
600 struct dentry *parent, in debugfs_create_automount()
604 struct dentry *dentry = start_creating(name, parent); in debugfs_create_automount() local
607 if (IS_ERR(dentry)) in debugfs_create_automount()
608 return dentry; in debugfs_create_automount()
611 failed_creating(dentry); in debugfs_create_automount()
615 inode = debugfs_get_inode(dentry->d_sb); in debugfs_create_automount()
619 return failed_creating(dentry); in debugfs_create_automount()
625 dentry->d_fsdata = (void *)f; in debugfs_create_automount()
628 d_instantiate(dentry, inode); in debugfs_create_automount()
629 inc_nlink(d_inode(dentry->d_parent)); in debugfs_create_automount()
630 fsnotify_mkdir(d_inode(dentry->d_parent), dentry); in debugfs_create_automount()
631 return end_creating(dentry); in debugfs_create_automount()
658 struct dentry *debugfs_create_symlink(const char *name, struct dentry *parent, in debugfs_create_symlink()
661 struct dentry *dentry; in debugfs_create_symlink() local
667 dentry = start_creating(name, parent); in debugfs_create_symlink()
668 if (IS_ERR(dentry)) { in debugfs_create_symlink()
670 return dentry; in debugfs_create_symlink()
673 inode = debugfs_get_inode(dentry->d_sb); in debugfs_create_symlink()
678 return failed_creating(dentry); in debugfs_create_symlink()
683 d_instantiate(dentry, inode); in debugfs_create_symlink()
684 return end_creating(dentry); in debugfs_create_symlink()
688 static void __debugfs_file_removed(struct dentry *dentry) in __debugfs_file_removed() argument
699 fsd = READ_ONCE(dentry->d_fsdata); in __debugfs_file_removed()
706 static void remove_one(struct dentry *victim) in remove_one()
726 void debugfs_remove(struct dentry *dentry) in debugfs_remove() argument
728 if (IS_ERR_OR_NULL(dentry)) in debugfs_remove()
732 simple_recursive_removal(dentry, remove_one); in debugfs_remove()
756 struct dentry *debugfs_rename(struct dentry *old_dir, struct dentry *old_dentry, in debugfs_rename()
757 struct dentry *new_dir, const char *new_name) in debugfs_rename()
760 struct dentry *dentry = NULL, *trap; in debugfs_rename() local
778 dentry = lookup_one_len(new_name, new_dir, strlen(new_name)); in debugfs_rename()
780 if (IS_ERR(dentry) || dentry == trap || d_really_is_positive(dentry)) in debugfs_rename()
786 d_inode(new_dir), dentry, 0); in debugfs_rename()
791 d_move(old_dentry, dentry); in debugfs_rename()
797 dput(dentry); in debugfs_rename()
800 if (dentry && !IS_ERR(dentry)) in debugfs_rename()
801 dput(dentry); in debugfs_rename()
803 if (IS_ERR(dentry)) in debugfs_rename()
804 return dentry; in debugfs_rename()