diff options
author | Tejun Heo <tj@kernel.org> | 2015-11-20 15:55:52 -0500 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2015-11-20 15:55:52 -0500 |
commit | 16af439645455fbf36984ca5e72f31073ee19ab7 (patch) | |
tree | c63b8ea7f219c1c9c2d0508ceb5f8abc78f231a4 /include/linux | |
parent | bd96f76a2454c6b97d70945902e30b4c31510678 (diff) | |
download | linux-16af439645455fbf36984ca5e72f31073ee19ab7.tar.gz linux-16af439645455fbf36984ca5e72f31073ee19ab7.tar.bz2 linux-16af439645455fbf36984ca5e72f31073ee19ab7.zip |
cgroup: implement cgroup_get_from_path() and expose cgroup_put()
Implement cgroup_get_from_path() using kernfs_walk_and_get() which
obtains a default hierarchy cgroup from its path. This will be used
to allow cgroup path based matching from outside cgroup proper -
e.g. networking and perf.
v2: Add EXPORT_SYMBOL_GPL(cgroup_get_from_path).
Signed-off-by: Tejun Heo <tj@kernel.org>
Diffstat (limited to 'include/linux')
-rw-r--r-- | include/linux/cgroup.h | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/include/linux/cgroup.h b/include/linux/cgroup.h index b5ee2c4210f9..4c3ffab81ba7 100644 --- a/include/linux/cgroup.h +++ b/include/linux/cgroup.h @@ -81,6 +81,8 @@ struct cgroup_subsys_state *cgroup_get_e_css(struct cgroup *cgroup, struct cgroup_subsys_state *css_tryget_online_from_dir(struct dentry *dentry, struct cgroup_subsys *ss); +struct cgroup *cgroup_get_from_path(const char *path); + int cgroup_attach_task_all(struct task_struct *from, struct task_struct *); int cgroup_transfer_tasks(struct cgroup *to, struct cgroup *from); @@ -351,6 +353,11 @@ static inline void css_put_many(struct cgroup_subsys_state *css, unsigned int n) percpu_ref_put_many(&css->refcnt, n); } +static inline void cgroup_put(struct cgroup *cgrp) +{ + css_put(&cgrp->self); +} + /** * task_css_set_check - obtain a task's css_set with extra access conditions * @task: the task to obtain css_set for |