Lines Matching refs:dentry
46 struct dentry *dentry, struct iattr *ia) in debugfs_setattr() argument
55 return simple_setattr(&nop_mnt_idmap, dentry, ia); in debugfs_setattr()
195 static int debugfs_show_options(struct seq_file *m, struct dentry *root) in debugfs_show_options()
242 static void debugfs_release_dentry(struct dentry *dentry) in debugfs_release_dentry() argument
244 struct debugfs_fsdata *fsd = dentry->d_fsdata; in debugfs_release_dentry()
255 struct inode *inode = path->dentry->d_inode; in debugfs_automount()
257 return DEBUGFS_I(inode)->automount(path->dentry, inode->i_private); in debugfs_automount()
339 struct dentry *debugfs_lookup(const char *name, struct dentry *parent) in debugfs_lookup()
341 struct dentry *dentry; in debugfs_lookup() local
349 dentry = lookup_noperm_positive_unlocked(&QSTR(name), parent); in debugfs_lookup()
350 if (IS_ERR(dentry)) in debugfs_lookup()
352 return dentry; in debugfs_lookup()
356 static struct dentry *start_creating(const char *name, struct dentry *parent) in start_creating()
358 struct dentry *dentry; in start_creating() local
387 dentry = simple_start_creating(parent, name); in start_creating()
388 if (IS_ERR(dentry)) { in start_creating()
389 if (dentry == ERR_PTR(-EEXIST)) in start_creating()
393 return dentry; in start_creating()
396 static struct dentry *failed_creating(struct dentry *dentry) in failed_creating() argument
398 inode_unlock(d_inode(dentry->d_parent)); in failed_creating()
399 dput(dentry); in failed_creating()
404 static struct dentry *end_creating(struct dentry *dentry) in end_creating() argument
406 inode_unlock(d_inode(dentry->d_parent)); in end_creating()
407 return dentry; in end_creating()
410 static struct dentry *__debugfs_create_file(const char *name, umode_t mode, in __debugfs_create_file()
411 struct dentry *parent, void *data, in __debugfs_create_file()
416 struct dentry *dentry; in __debugfs_create_file() local
422 dentry = start_creating(name, parent); in __debugfs_create_file()
424 if (IS_ERR(dentry)) in __debugfs_create_file()
425 return dentry; in __debugfs_create_file()
428 failed_creating(dentry); in __debugfs_create_file()
432 inode = debugfs_get_inode(dentry->d_sb); in __debugfs_create_file()
436 return failed_creating(dentry); in __debugfs_create_file()
449 d_instantiate(dentry, inode); in __debugfs_create_file()
450 fsnotify_create(d_inode(dentry->d_parent), dentry); in __debugfs_create_file()
451 return end_creating(dentry); in __debugfs_create_file()
454 struct dentry *debugfs_create_file_full(const char *name, umode_t mode, in debugfs_create_file_full()
455 struct dentry *parent, void *data, in debugfs_create_file_full()
465 struct dentry *debugfs_create_file_short(const char *name, umode_t mode, in debugfs_create_file_short()
466 struct dentry *parent, void *data, in debugfs_create_file_short()
503 struct dentry *debugfs_create_file_unsafe(const char *name, umode_t mode, in debugfs_create_file_unsafe()
504 struct dentry *parent, void *data, in debugfs_create_file_unsafe()
534 struct dentry *parent, void *data, in debugfs_create_file_size()
538 struct dentry *de = debugfs_create_file(name, mode, parent, data, fops); in debugfs_create_file_size()
569 struct dentry *debugfs_create_dir(const char *name, struct dentry *parent) in debugfs_create_dir()
571 struct dentry *dentry = start_creating(name, parent); in debugfs_create_dir() local
574 if (IS_ERR(dentry)) in debugfs_create_dir()
575 return dentry; in debugfs_create_dir()
578 failed_creating(dentry); in debugfs_create_dir()
582 inode = debugfs_get_inode(dentry->d_sb); in debugfs_create_dir()
586 return failed_creating(dentry); in debugfs_create_dir()
595 d_instantiate(dentry, inode); in debugfs_create_dir()
596 inc_nlink(d_inode(dentry->d_parent)); in debugfs_create_dir()
597 fsnotify_mkdir(d_inode(dentry->d_parent), dentry); in debugfs_create_dir()
598 return end_creating(dentry); in debugfs_create_dir()
613 struct dentry *debugfs_create_automount(const char *name, in debugfs_create_automount()
614 struct dentry *parent, in debugfs_create_automount()
618 struct dentry *dentry = start_creating(name, parent); in debugfs_create_automount() local
621 if (IS_ERR(dentry)) in debugfs_create_automount()
622 return dentry; in debugfs_create_automount()
625 failed_creating(dentry); in debugfs_create_automount()
629 inode = debugfs_get_inode(dentry->d_sb); in debugfs_create_automount()
633 return failed_creating(dentry); in debugfs_create_automount()
642 d_instantiate(dentry, inode); in debugfs_create_automount()
643 inc_nlink(d_inode(dentry->d_parent)); in debugfs_create_automount()
644 fsnotify_mkdir(d_inode(dentry->d_parent), dentry); in debugfs_create_automount()
645 return end_creating(dentry); in debugfs_create_automount()
672 struct dentry *debugfs_create_symlink(const char *name, struct dentry *parent, in debugfs_create_symlink()
675 struct dentry *dentry; in debugfs_create_symlink() local
681 dentry = start_creating(name, parent); in debugfs_create_symlink()
682 if (IS_ERR(dentry)) { in debugfs_create_symlink()
684 return dentry; in debugfs_create_symlink()
687 inode = debugfs_get_inode(dentry->d_sb); in debugfs_create_symlink()
692 return failed_creating(dentry); in debugfs_create_symlink()
697 d_instantiate(dentry, inode); in debugfs_create_symlink()
698 return end_creating(dentry); in debugfs_create_symlink()
702 static void __debugfs_file_removed(struct dentry *dentry) in __debugfs_file_removed() argument
713 fsd = READ_ONCE(dentry->d_fsdata); in __debugfs_file_removed()
756 c->cancel(dentry, c->cancel_data); in __debugfs_file_removed()
764 static void remove_one(struct dentry *victim) in remove_one()
784 void debugfs_remove(struct dentry *dentry) in debugfs_remove() argument
786 if (IS_ERR_OR_NULL(dentry)) in debugfs_remove()
790 simple_recursive_removal(dentry, remove_one); in debugfs_remove()
804 void debugfs_lookup_and_remove(const char *name, struct dentry *parent) in debugfs_lookup_and_remove()
806 struct dentry *dentry; in debugfs_lookup_and_remove() local
808 dentry = debugfs_lookup(name, parent); in debugfs_lookup_and_remove()
809 if (!dentry) in debugfs_lookup_and_remove()
812 debugfs_remove(dentry); in debugfs_lookup_and_remove()
813 dput(dentry); in debugfs_lookup_and_remove()
830 int __printf(2, 3) debugfs_change_name(struct dentry *dentry, const char *fmt, ...) in debugfs_change_name() argument
835 struct dentry *parent, *target; in debugfs_change_name()
839 if (IS_ERR_OR_NULL(dentry)) in debugfs_change_name()
848 parent = dget_parent(dentry); in debugfs_change_name()
852 take_dentry_name_snapshot(&old_name, dentry); in debugfs_change_name()
854 if (WARN_ON_ONCE(dentry->d_parent != parent)) { in debugfs_change_name()
870 simple_rename_timestamp(dir, dentry, dir, target); in debugfs_change_name()
871 d_move(dentry, target); in debugfs_change_name()
873 fsnotify_move(dir, dir, &old_name.name, d_is_dir(dentry), NULL, dentry); in debugfs_change_name()