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()
198 static int debugfs_show_options(struct seq_file *m, struct dentry *root) in debugfs_show_options()
245 static void debugfs_release_dentry(struct dentry *dentry) in debugfs_release_dentry() argument
247 struct debugfs_fsdata *fsd = dentry->d_fsdata; in debugfs_release_dentry()
258 struct inode *inode = path->dentry->d_inode; in debugfs_automount()
260 return DEBUGFS_I(inode)->automount(path->dentry, inode->i_private); in debugfs_automount()
345 struct dentry *debugfs_lookup(const char *name, struct dentry *parent) in debugfs_lookup()
347 struct dentry *dentry; in debugfs_lookup() local
355 dentry = lookup_noperm_positive_unlocked(&QSTR(name), parent); in debugfs_lookup()
356 if (IS_ERR(dentry)) in debugfs_lookup()
358 return dentry; in debugfs_lookup()
362 static struct dentry *debugfs_start_creating(const char *name, in debugfs_start_creating()
363 struct dentry *parent) in debugfs_start_creating()
365 struct dentry *dentry; in debugfs_start_creating() local
394 dentry = simple_start_creating(parent, name); in debugfs_start_creating()
395 if (IS_ERR(dentry)) { in debugfs_start_creating()
396 if (dentry == ERR_PTR(-EEXIST)) in debugfs_start_creating()
400 return dentry; in debugfs_start_creating()
403 static struct dentry *debugfs_failed_creating(struct dentry *dentry) in debugfs_failed_creating() argument
405 simple_done_creating(dentry); in debugfs_failed_creating()
410 static struct dentry *debugfs_end_creating(struct dentry *dentry) in debugfs_end_creating() argument
412 simple_done_creating(dentry); in debugfs_end_creating()
413 return dentry; // borrowed in debugfs_end_creating()
416 static struct dentry *__debugfs_create_file(const char *name, umode_t mode, in __debugfs_create_file()
417 struct dentry *parent, void *data, in __debugfs_create_file()
422 struct dentry *dentry; in __debugfs_create_file() local
428 dentry = debugfs_start_creating(name, parent); in __debugfs_create_file()
430 if (IS_ERR(dentry)) in __debugfs_create_file()
431 return dentry; in __debugfs_create_file()
433 inode = debugfs_get_inode(dentry->d_sb); in __debugfs_create_file()
437 return debugfs_failed_creating(dentry); in __debugfs_create_file()
450 d_make_persistent(dentry, inode); in __debugfs_create_file()
451 fsnotify_create(d_inode(dentry->d_parent), dentry); in __debugfs_create_file()
452 return debugfs_end_creating(dentry); in __debugfs_create_file()
455 struct dentry *debugfs_create_file_full(const char *name, umode_t mode, in debugfs_create_file_full()
456 struct dentry *parent, void *data, in debugfs_create_file_full()
466 struct dentry *debugfs_create_file_short(const char *name, umode_t mode, in debugfs_create_file_short()
467 struct dentry *parent, void *data, in debugfs_create_file_short()
504 struct dentry *debugfs_create_file_unsafe(const char *name, umode_t mode, in debugfs_create_file_unsafe()
505 struct dentry *parent, void *data, in debugfs_create_file_unsafe()
535 struct dentry *parent, void *data, in debugfs_create_file_size()
539 struct dentry *de = debugfs_create_file(name, mode, parent, data, fops); in debugfs_create_file_size()
570 struct dentry *debugfs_create_dir(const char *name, struct dentry *parent) in debugfs_create_dir()
572 struct dentry *dentry = debugfs_start_creating(name, parent); in debugfs_create_dir() local
575 if (IS_ERR(dentry)) in debugfs_create_dir()
576 return dentry; in debugfs_create_dir()
578 inode = debugfs_get_inode(dentry->d_sb); in debugfs_create_dir()
582 return debugfs_failed_creating(dentry); in debugfs_create_dir()
591 d_make_persistent(dentry, inode); in debugfs_create_dir()
592 inc_nlink(d_inode(dentry->d_parent)); in debugfs_create_dir()
593 fsnotify_mkdir(d_inode(dentry->d_parent), dentry); in debugfs_create_dir()
594 return debugfs_end_creating(dentry); in debugfs_create_dir()
609 struct dentry *debugfs_create_automount(const char *name, in debugfs_create_automount()
610 struct dentry *parent, in debugfs_create_automount()
614 struct dentry *dentry = debugfs_start_creating(name, parent); in debugfs_create_automount() local
617 if (IS_ERR(dentry)) in debugfs_create_automount()
618 return dentry; in debugfs_create_automount()
620 inode = debugfs_get_inode(dentry->d_sb); in debugfs_create_automount()
624 return debugfs_failed_creating(dentry); in debugfs_create_automount()
633 d_make_persistent(dentry, inode); in debugfs_create_automount()
634 inc_nlink(d_inode(dentry->d_parent)); in debugfs_create_automount()
635 fsnotify_mkdir(d_inode(dentry->d_parent), dentry); in debugfs_create_automount()
636 return debugfs_end_creating(dentry); in debugfs_create_automount()
663 struct dentry *debugfs_create_symlink(const char *name, struct dentry *parent, in debugfs_create_symlink()
666 struct dentry *dentry; in debugfs_create_symlink() local
672 dentry = debugfs_start_creating(name, parent); in debugfs_create_symlink()
673 if (IS_ERR(dentry)) { in debugfs_create_symlink()
675 return dentry; in debugfs_create_symlink()
678 inode = debugfs_get_inode(dentry->d_sb); in debugfs_create_symlink()
683 return debugfs_failed_creating(dentry); in debugfs_create_symlink()
688 d_make_persistent(dentry, inode); in debugfs_create_symlink()
689 return debugfs_end_creating(dentry); in debugfs_create_symlink()
693 static void __debugfs_file_removed(struct dentry *dentry) in __debugfs_file_removed() argument
704 fsd = READ_ONCE(dentry->d_fsdata); in __debugfs_file_removed()
747 c->cancel(dentry, c->cancel_data); in __debugfs_file_removed()
755 static void remove_one(struct dentry *victim) in remove_one()
775 void debugfs_remove(struct dentry *dentry) in debugfs_remove() argument
777 if (IS_ERR_OR_NULL(dentry)) in debugfs_remove()
781 simple_recursive_removal(dentry, remove_one); in debugfs_remove()
795 void debugfs_lookup_and_remove(const char *name, struct dentry *parent) in debugfs_lookup_and_remove()
797 struct dentry *dentry; in debugfs_lookup_and_remove() local
799 dentry = debugfs_lookup(name, parent); in debugfs_lookup_and_remove()
800 if (!dentry) in debugfs_lookup_and_remove()
803 debugfs_remove(dentry); in debugfs_lookup_and_remove()
804 dput(dentry); in debugfs_lookup_and_remove()
821 int __printf(2, 3) debugfs_change_name(struct dentry *dentry, const char *fmt, ...) in debugfs_change_name() argument
826 struct dentry *target; in debugfs_change_name()
831 if (IS_ERR_OR_NULL(dentry)) in debugfs_change_name()
840 rd.old_parent = dget_parent(dentry); in debugfs_change_name()
849 error = start_renaming_two_dentries(&rd, dentry, target); in debugfs_change_name()
851 if (error == -EEXIST && target == dentry) in debugfs_change_name()
858 take_dentry_name_snapshot(&old_name, dentry); in debugfs_change_name()
859 simple_rename_timestamp(dir, dentry, dir, rd.new_dentry); in debugfs_change_name()
860 d_move(dentry, rd.new_dentry); in debugfs_change_name()
861 fsnotify_move(dir, dir, &old_name.name, d_is_dir(dentry), NULL, dentry); in debugfs_change_name()