• Home
  • Raw
  • Download

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 struct debugfs_fsdata *fsd = dentry->d_fsdata; in debugfs_release_dentry()
227 struct debugfs_fsdata *fsd = path->dentry->d_fsdata; in debugfs_automount()
229 return fsd->automount(path->dentry, d_inode(path->dentry)->i_private); in debugfs_automount()
272 static struct dentry *debug_mount(struct file_system_type *fs_type, in debug_mount()
302 struct dentry *debugfs_lookup(const char *name, struct dentry *parent) in debugfs_lookup()
304 struct dentry *dentry; in debugfs_lookup() local
312 dentry = lookup_positive_unlocked(name, parent, strlen(name)); in debugfs_lookup()
313 if (IS_ERR(dentry)) in debugfs_lookup()
315 return dentry; in debugfs_lookup()
319 static struct dentry *start_creating(const char *name, struct dentry *parent) in start_creating()
321 struct dentry *dentry; in start_creating() local
352 dentry = ERR_PTR(-ENOENT); in start_creating()
354 dentry = lookup_one_len(name, parent, strlen(name)); in start_creating()
355 if (!IS_ERR(dentry) && d_really_is_positive(dentry)) { in start_creating()
356 if (d_is_dir(dentry)) in start_creating()
362 dput(dentry); in start_creating()
363 dentry = ERR_PTR(-EEXIST); in start_creating()
366 if (IS_ERR(dentry)) { in start_creating()
371 return dentry; in start_creating()
374 static struct dentry *failed_creating(struct dentry *dentry) in failed_creating() argument
376 inode_unlock(d_inode(dentry->d_parent)); in failed_creating()
377 dput(dentry); in failed_creating()
382 static struct dentry *end_creating(struct dentry *dentry) in end_creating() argument
384 inode_unlock(d_inode(dentry->d_parent)); in end_creating()
385 return dentry; in end_creating()
388 static struct dentry *__debugfs_create_file(const char *name, umode_t mode, in __debugfs_create_file()
389 struct dentry *parent, void *data, in __debugfs_create_file()
393 struct dentry *dentry; in __debugfs_create_file() local
399 dentry = start_creating(name, parent); in __debugfs_create_file()
401 if (IS_ERR(dentry)) in __debugfs_create_file()
402 return dentry; in __debugfs_create_file()
405 failed_creating(dentry); in __debugfs_create_file()
409 inode = debugfs_get_inode(dentry->d_sb); in __debugfs_create_file()
413 return failed_creating(dentry); in __debugfs_create_file()
421 dentry->d_fsdata = (void *)((unsigned long)real_fops | in __debugfs_create_file()
424 d_instantiate(dentry, inode); in __debugfs_create_file()
425 fsnotify_create(d_inode(dentry->d_parent), dentry); in __debugfs_create_file()
426 return end_creating(dentry); in __debugfs_create_file()
456 struct dentry *debugfs_create_file(const char *name, umode_t mode, in debugfs_create_file()
457 struct dentry *parent, void *data, in debugfs_create_file()
495 struct dentry *debugfs_create_file_unsafe(const char *name, umode_t mode, in debugfs_create_file_unsafe()
496 struct dentry *parent, void *data, in debugfs_create_file_unsafe()
527 struct dentry *parent, void *data, in debugfs_create_file_size()
531 struct dentry *de = debugfs_create_file(name, mode, parent, data, fops); in debugfs_create_file_size()
557 struct dentry *debugfs_create_dir(const char *name, struct dentry *parent) in debugfs_create_dir()
559 struct dentry *dentry = start_creating(name, parent); in debugfs_create_dir() local
562 if (IS_ERR(dentry)) in debugfs_create_dir()
563 return dentry; in debugfs_create_dir()
566 failed_creating(dentry); in debugfs_create_dir()
570 inode = debugfs_get_inode(dentry->d_sb); in debugfs_create_dir()
574 return failed_creating(dentry); in debugfs_create_dir()
583 d_instantiate(dentry, inode); in debugfs_create_dir()
584 inc_nlink(d_inode(dentry->d_parent)); in debugfs_create_dir()
585 fsnotify_mkdir(d_inode(dentry->d_parent), dentry); in debugfs_create_dir()
586 return end_creating(dentry); in debugfs_create_dir()
601 struct dentry *debugfs_create_automount(const char *name, in debugfs_create_automount()
602 struct dentry *parent, in debugfs_create_automount()
606 struct dentry *dentry = start_creating(name, parent); in debugfs_create_automount() local
610 if (IS_ERR(dentry)) in debugfs_create_automount()
611 return dentry; in debugfs_create_automount()
615 failed_creating(dentry); in debugfs_create_automount()
622 failed_creating(dentry); in debugfs_create_automount()
627 inode = debugfs_get_inode(dentry->d_sb); in debugfs_create_automount()
632 return failed_creating(dentry); in debugfs_create_automount()
638 dentry->d_fsdata = fsd; in debugfs_create_automount()
641 d_instantiate(dentry, inode); in debugfs_create_automount()
642 inc_nlink(d_inode(dentry->d_parent)); in debugfs_create_automount()
643 fsnotify_mkdir(d_inode(dentry->d_parent), dentry); in debugfs_create_automount()
644 return end_creating(dentry); in debugfs_create_automount()
671 struct dentry *debugfs_create_symlink(const char *name, struct dentry *parent, in debugfs_create_symlink()
674 struct dentry *dentry; in debugfs_create_symlink() local
680 dentry = start_creating(name, parent); in debugfs_create_symlink()
681 if (IS_ERR(dentry)) { in debugfs_create_symlink()
683 return dentry; in debugfs_create_symlink()
686 inode = debugfs_get_inode(dentry->d_sb); in debugfs_create_symlink()
691 return failed_creating(dentry); in debugfs_create_symlink()
696 d_instantiate(dentry, inode); in debugfs_create_symlink()
697 return end_creating(dentry); in debugfs_create_symlink()
701 static void __debugfs_file_removed(struct dentry *dentry) in __debugfs_file_removed() argument
712 fsd = READ_ONCE(dentry->d_fsdata); in __debugfs_file_removed()
719 static void remove_one(struct dentry *victim) in remove_one()
739 void debugfs_remove(struct dentry *dentry) in debugfs_remove() argument
741 if (IS_ERR_OR_NULL(dentry)) in debugfs_remove()
745 simple_recursive_removal(dentry, remove_one); in debugfs_remove()
759 void debugfs_lookup_and_remove(const char *name, struct dentry *parent) in debugfs_lookup_and_remove()
761 struct dentry *dentry; in debugfs_lookup_and_remove() local
763 dentry = debugfs_lookup(name, parent); in debugfs_lookup_and_remove()
764 if (!dentry) in debugfs_lookup_and_remove()
767 debugfs_remove(dentry); in debugfs_lookup_and_remove()
768 dput(dentry); in debugfs_lookup_and_remove()
791 struct dentry *debugfs_rename(struct dentry *old_dir, struct dentry *old_dentry, in debugfs_rename()
792 struct dentry *new_dir, const char *new_name) in debugfs_rename()
795 struct dentry *dentry = NULL, *trap; in debugfs_rename() local
813 dentry = lookup_one_len(new_name, new_dir, strlen(new_name)); in debugfs_rename()
815 if (IS_ERR(dentry) || dentry == trap || d_really_is_positive(dentry)) in debugfs_rename()
821 d_inode(new_dir), dentry, 0); in debugfs_rename()
826 d_move(old_dentry, dentry); in debugfs_rename()
832 dput(dentry); in debugfs_rename()
835 if (dentry && !IS_ERR(dentry)) in debugfs_rename()
836 dput(dentry); in debugfs_rename()
838 if (IS_ERR(dentry)) in debugfs_rename()
839 return dentry; in debugfs_rename()