• Home
  • Raw
  • Download

Lines Matching refs:dentry

561 static int cgroup_mkdir(struct inode *dir, struct dentry *dentry, int mode);
562 static int cgroup_rmdir(struct inode *unused_dir, struct dentry *dentry);
605 static void cgroup_diput(struct dentry *dentry, struct inode *inode) in cgroup_diput() argument
609 struct cgroup *cgrp = dentry->d_fsdata; in cgroup_diput()
641 static void remove_dir(struct dentry *d) in remove_dir()
643 struct dentry *parent = dget(d->d_parent); in remove_dir()
650 static void cgroup_clear_directory(struct dentry *dentry) in cgroup_clear_directory() argument
654 BUG_ON(!mutex_is_locked(&dentry->d_inode->i_mutex)); in cgroup_clear_directory()
656 node = dentry->d_subdirs.next; in cgroup_clear_directory()
657 while (node != &dentry->d_subdirs) { in cgroup_clear_directory()
658 struct dentry *d = list_entry(node, struct dentry, d_u.d_child); in cgroup_clear_directory()
667 simple_unlink(dentry->d_inode, d); in cgroup_clear_directory()
671 node = dentry->d_subdirs.next; in cgroup_clear_directory()
679 static void cgroup_d_remove_dir(struct dentry *dentry) in cgroup_d_remove_dir() argument
681 cgroup_clear_directory(dentry); in cgroup_d_remove_dir()
684 list_del_init(&dentry->d_u.d_child); in cgroup_d_remove_dir()
686 remove_dir(dentry); in cgroup_d_remove_dir()
846 mutex_lock(&cgrp->dentry->d_inode->i_mutex); in cgroup_remount()
872 mutex_unlock(&cgrp->dentry->d_inode->i_mutex); in cgroup_remount()
942 struct dentry *dentry; in cgroup_get_rootdir() local
951 dentry = d_alloc_root(inode); in cgroup_get_rootdir()
952 if (!dentry) { in cgroup_get_rootdir()
956 sb->s_root = dentry; in cgroup_get_rootdir()
1049 root->top_cgroup.dentry = sb->s_root; in cgroup_get_sb()
1136 static inline struct cgroup *__d_cgrp(struct dentry *dentry) in __d_cgrp() argument
1138 return dentry->d_fsdata; in __d_cgrp()
1141 static inline struct cftype *__d_cft(struct dentry *dentry) in __d_cft() argument
1143 return dentry->d_fsdata; in __d_cft()
1159 struct dentry *dentry = rcu_dereference(cgrp->dentry); in cgroup_path() local
1161 if (!dentry || cgrp == dummytop) { in cgroup_path()
1174 int len = dentry->d_name.len; in cgroup_path()
1177 memcpy(start, cgrp->dentry->d_name.name, len); in cgroup_path()
1181 dentry = rcu_dereference(cgrp->dentry); in cgroup_path()
1601 static int cgroup_rename(struct inode *old_dir, struct dentry *old_dentry, in cgroup_rename()
1602 struct inode *new_dir, struct dentry *new_dentry) in cgroup_rename()
1628 static int cgroup_create_file(struct dentry *dentry, int mode, in cgroup_create_file() argument
1637 if (!dentry) in cgroup_create_file()
1639 if (dentry->d_inode) in cgroup_create_file()
1660 dentry->d_op = &cgroup_dops; in cgroup_create_file()
1661 d_instantiate(dentry, inode); in cgroup_create_file()
1662 dget(dentry); /* Extra count - pin the dentry in core */ in cgroup_create_file()
1673 static int cgroup_create_dir(struct cgroup *cgrp, struct dentry *dentry, in cgroup_create_dir() argument
1676 struct dentry *parent; in cgroup_create_dir()
1679 parent = cgrp->parent->dentry; in cgroup_create_dir()
1680 error = cgroup_create_file(dentry, S_IFDIR | mode, cgrp->root->sb); in cgroup_create_dir()
1682 dentry->d_fsdata = cgrp; in cgroup_create_dir()
1684 rcu_assign_pointer(cgrp->dentry, dentry); in cgroup_create_dir()
1685 dget(dentry); in cgroup_create_dir()
1687 dput(dentry); in cgroup_create_dir()
1696 struct dentry *dir = cgrp->dentry; in cgroup_add_file()
1697 struct dentry *dentry; in cgroup_add_file() local
1707 dentry = lookup_one_len(name, dir, strlen(name)); in cgroup_add_file()
1708 if (!IS_ERR(dentry)) { in cgroup_add_file()
1709 error = cgroup_create_file(dentry, 0644 | S_IFREG, in cgroup_add_file()
1712 dentry->d_fsdata = (void *)cft; in cgroup_add_file()
1713 dput(dentry); in cgroup_add_file()
1715 error = PTR_ERR(dentry); in cgroup_add_file()
2052 int cgroupstats_build(struct cgroupstats *stats, struct dentry *dentry) in cgroupstats_build() argument
2063 if (dentry->d_sb->s_op != &cgroup_ops || in cgroupstats_build()
2064 !S_ISDIR(dentry->d_inode->i_mode)) in cgroupstats_build()
2068 cgrp = dentry->d_fsdata; in cgroupstats_build()
2315 cgroup_clear_directory(cgrp->dentry); in cgroup_populate_dir()
2378 static long cgroup_create(struct cgroup *parent, struct dentry *dentry, in cgroup_create() argument
2423 err = cgroup_create_dir(cgrp, dentry, mode); in cgroup_create()
2428 BUG_ON(!mutex_is_locked(&cgrp->dentry->d_inode->i_mutex)); in cgroup_create()
2434 mutex_unlock(&cgrp->dentry->d_inode->i_mutex); in cgroup_create()
2461 static int cgroup_mkdir(struct inode *dir, struct dentry *dentry, int mode) in cgroup_mkdir() argument
2463 struct cgroup *c_parent = dentry->d_parent->d_fsdata; in cgroup_mkdir()
2466 return cgroup_create(c_parent, dentry, mode | S_IFDIR); in cgroup_mkdir()
2553 static int cgroup_rmdir(struct inode *unused_dir, struct dentry *dentry) in cgroup_rmdir() argument
2555 struct cgroup *cgrp = dentry->d_fsdata; in cgroup_rmdir()
2556 struct dentry *d; in cgroup_rmdir()
2599 spin_lock(&cgrp->dentry->d_lock); in cgroup_rmdir()
2600 d = dget(cgrp->dentry); in cgroup_rmdir()
2983 struct dentry *dentry; in cgroup_clone() local
3021 inode = parent->dentry->d_inode; in cgroup_clone()
3026 dentry = lookup_one_len(nodename, parent->dentry, strlen(nodename)); in cgroup_clone()
3027 if (IS_ERR(dentry)) { in cgroup_clone()
3030 PTR_ERR(dentry)); in cgroup_clone()
3031 ret = PTR_ERR(dentry); in cgroup_clone()
3036 ret = vfs_mkdir(inode, dentry, 0755); in cgroup_clone()
3037 child = __d_cgrp(dentry); in cgroup_clone()
3038 dput(dentry); in cgroup_clone()