• Home
  • Raw
  • Download

Lines Matching refs:dentry

45 static int debugfs_setattr(struct dentry *dentry, struct iattr *ia)  in debugfs_setattr()  argument
54 return simple_setattr(dentry, ia); in debugfs_setattr()
183 static int debugfs_show_options(struct seq_file *m, struct dentry *root) in debugfs_show_options()
214 static void debugfs_release_dentry(struct dentry *dentry) in debugfs_release_dentry() argument
216 void *fsd = dentry->d_fsdata; in debugfs_release_dentry()
219 kfree(dentry->d_fsdata); in debugfs_release_dentry()
225 f = (debugfs_automount_t)path->dentry->d_fsdata; in debugfs_automount()
226 return f(path->dentry, d_inode(path->dentry)->i_private); in debugfs_automount()
269 static struct dentry *debug_mount(struct file_system_type *fs_type, in debug_mount()
299 struct dentry *debugfs_lookup(const char *name, struct dentry *parent) in debugfs_lookup()
301 struct dentry *dentry; in debugfs_lookup() local
309 dentry = lookup_positive_unlocked(name, parent, strlen(name)); in debugfs_lookup()
310 if (IS_ERR(dentry)) in debugfs_lookup()
312 return dentry; in debugfs_lookup()
316 static struct dentry *start_creating(const char *name, struct dentry *parent) in start_creating()
318 struct dentry *dentry; in start_creating() local
349 dentry = ERR_PTR(-ENOENT); in start_creating()
351 dentry = lookup_one_len(name, parent, strlen(name)); in start_creating()
352 if (!IS_ERR(dentry) && d_really_is_positive(dentry)) { in start_creating()
353 if (d_is_dir(dentry)) in start_creating()
359 dput(dentry); in start_creating()
360 dentry = ERR_PTR(-EEXIST); in start_creating()
363 if (IS_ERR(dentry)) { in start_creating()
368 return dentry; in start_creating()
371 static struct dentry *failed_creating(struct dentry *dentry) in failed_creating() argument
373 inode_unlock(d_inode(dentry->d_parent)); in failed_creating()
374 dput(dentry); in failed_creating()
379 static struct dentry *end_creating(struct dentry *dentry) in end_creating() argument
381 inode_unlock(d_inode(dentry->d_parent)); in end_creating()
382 return dentry; in end_creating()
385 static struct dentry *__debugfs_create_file(const char *name, umode_t mode, in __debugfs_create_file()
386 struct dentry *parent, void *data, in __debugfs_create_file()
390 struct dentry *dentry; in __debugfs_create_file() local
396 dentry = start_creating(name, parent); in __debugfs_create_file()
398 if (IS_ERR(dentry)) in __debugfs_create_file()
399 return dentry; in __debugfs_create_file()
402 failed_creating(dentry); in __debugfs_create_file()
406 inode = debugfs_get_inode(dentry->d_sb); in __debugfs_create_file()
410 return failed_creating(dentry); in __debugfs_create_file()
418 dentry->d_fsdata = (void *)((unsigned long)real_fops | in __debugfs_create_file()
421 d_instantiate(dentry, inode); in __debugfs_create_file()
422 fsnotify_create(d_inode(dentry->d_parent), dentry); in __debugfs_create_file()
423 return end_creating(dentry); in __debugfs_create_file()
453 struct dentry *debugfs_create_file(const char *name, umode_t mode, in debugfs_create_file()
454 struct dentry *parent, void *data, in debugfs_create_file()
492 struct dentry *debugfs_create_file_unsafe(const char *name, umode_t mode, in debugfs_create_file_unsafe()
493 struct dentry *parent, void *data, in debugfs_create_file_unsafe()
524 struct dentry *parent, void *data, in debugfs_create_file_size()
528 struct dentry *de = debugfs_create_file(name, mode, parent, data, fops); in debugfs_create_file_size()
554 struct dentry *debugfs_create_dir(const char *name, struct dentry *parent) in debugfs_create_dir()
556 struct dentry *dentry = start_creating(name, parent); in debugfs_create_dir() local
559 if (IS_ERR(dentry)) in debugfs_create_dir()
560 return dentry; in debugfs_create_dir()
563 failed_creating(dentry); in debugfs_create_dir()
567 inode = debugfs_get_inode(dentry->d_sb); in debugfs_create_dir()
571 return failed_creating(dentry); in debugfs_create_dir()
580 d_instantiate(dentry, inode); in debugfs_create_dir()
581 inc_nlink(d_inode(dentry->d_parent)); in debugfs_create_dir()
582 fsnotify_mkdir(d_inode(dentry->d_parent), dentry); in debugfs_create_dir()
583 return end_creating(dentry); in debugfs_create_dir()
598 struct dentry *debugfs_create_automount(const char *name, in debugfs_create_automount()
599 struct dentry *parent, in debugfs_create_automount()
603 struct dentry *dentry = start_creating(name, parent); in debugfs_create_automount() local
606 if (IS_ERR(dentry)) in debugfs_create_automount()
607 return dentry; in debugfs_create_automount()
610 failed_creating(dentry); in debugfs_create_automount()
614 inode = debugfs_get_inode(dentry->d_sb); in debugfs_create_automount()
618 return failed_creating(dentry); in debugfs_create_automount()
624 dentry->d_fsdata = (void *)f; in debugfs_create_automount()
627 d_instantiate(dentry, inode); in debugfs_create_automount()
628 inc_nlink(d_inode(dentry->d_parent)); in debugfs_create_automount()
629 fsnotify_mkdir(d_inode(dentry->d_parent), dentry); in debugfs_create_automount()
630 return end_creating(dentry); in debugfs_create_automount()
657 struct dentry *debugfs_create_symlink(const char *name, struct dentry *parent, in debugfs_create_symlink()
660 struct dentry *dentry; in debugfs_create_symlink() local
666 dentry = start_creating(name, parent); in debugfs_create_symlink()
667 if (IS_ERR(dentry)) { in debugfs_create_symlink()
669 return dentry; in debugfs_create_symlink()
672 inode = debugfs_get_inode(dentry->d_sb); in debugfs_create_symlink()
677 return failed_creating(dentry); in debugfs_create_symlink()
682 d_instantiate(dentry, inode); in debugfs_create_symlink()
683 return end_creating(dentry); in debugfs_create_symlink()
687 static void __debugfs_file_removed(struct dentry *dentry) in __debugfs_file_removed() argument
698 fsd = READ_ONCE(dentry->d_fsdata); in __debugfs_file_removed()
705 static void remove_one(struct dentry *victim) in remove_one()
725 void debugfs_remove(struct dentry *dentry) in debugfs_remove() argument
727 if (IS_ERR_OR_NULL(dentry)) in debugfs_remove()
731 simple_recursive_removal(dentry, remove_one); in debugfs_remove()
745 void debugfs_lookup_and_remove(const char *name, struct dentry *parent) in debugfs_lookup_and_remove()
747 struct dentry *dentry; in debugfs_lookup_and_remove() local
749 dentry = debugfs_lookup(name, parent); in debugfs_lookup_and_remove()
750 if (!dentry) in debugfs_lookup_and_remove()
753 debugfs_remove(dentry); in debugfs_lookup_and_remove()
754 dput(dentry); in debugfs_lookup_and_remove()
777 struct dentry *debugfs_rename(struct dentry *old_dir, struct dentry *old_dentry, in debugfs_rename()
778 struct dentry *new_dir, const char *new_name) in debugfs_rename()
781 struct dentry *dentry = NULL, *trap; in debugfs_rename() local
799 dentry = lookup_one_len(new_name, new_dir, strlen(new_name)); in debugfs_rename()
801 if (IS_ERR(dentry) || dentry == trap || d_really_is_positive(dentry)) in debugfs_rename()
807 dentry, 0); in debugfs_rename()
812 d_move(old_dentry, dentry); in debugfs_rename()
818 dput(dentry); in debugfs_rename()
821 if (dentry && !IS_ERR(dentry)) in debugfs_rename()
822 dput(dentry); in debugfs_rename()
824 if (IS_ERR(dentry)) in debugfs_rename()
825 return dentry; in debugfs_rename()