cgroup: change cgroup_from_id() to css_from_id()
PATCH 1/1 cgroup: change cgroup_from_id() to css_from_id()
Now we want cgroup core to always provide the css to use to the subsystems, so change this API to css_from_id().
Uninline css_from_id(), because it's getting bigger and cgroup_css() has been unexported.
While at it, remove the #ifdef.
--- include/linux/cgroup.h | 20 ++------------------ kernel/cgroup.c | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+), 18 deletions(-)
include/linux/cgroup.h +2 -18
@@ -742,27 +742,11 @@ static inline struct cgroup *task_cgroup(struct task_struct *task,return task_css (task, subsys_id)->cgroup; } -/** -* cgroup_from_id - lookup cgroup by id -* @ss: cgroup subsys to be looked into -* @id: the cgroup id -* -* Returns the cgroup if there's valid one with @id, otherwise returns NULL. -* Should be called under rcu_read_lock(). -*/ -static inline struct cgroup *cgroup_from_id (struct cgroup_subsys *ss,int id) -{ -#ifdef CONFIG_PROVE_RCU -rcu_lockdep_assert (rcu_read_lock_held () || -lockdep_is_held (&cgroup_mutex), -"cgroup_from_id() needs proper protection" ); -#endif -return idr_find (&ss->root->cgroup_idr, id); -} -struct cgroup_subsys_state *css_next_child (struct cgroup_subsys_state *pos,struct cgroup_subsys_state *parent); +struct cgroup_subsys_state *css_from_id (struct cgroup_subsys *ss,int id); +/** * css_for_each_child - iterate through children of a css * @pos: the css * to use as the loop cursor
kernel/cgroup.c +22 -0
@@ -5710,6 +5710,28 @@ struct cgroup_subsys_state *cgroup_css_from_dir(struct file *f, int id)return css ? css :ERR_PTR (-ENOENT ); } +/** +* css_from_id - lookup css by id +* @ss: cgroup subsys to be looked into +* @id: the cgroup id +* +* Returns the css if there's valid one with @id, otherwise returns NULL. +* Should be called under rcu_read_lock(). +*/ +struct cgroup_subsys_state *css_from_id (struct cgroup_subsys *ss,int id) +{ +struct cgroup *cgrp; + +rcu_lockdep_assert (rcu_read_lock_held () || +lockdep_is_held (&cgroup_mutex), +"css_from_id() needs proper protection" ); + + cgrp =idr_find (&ss->root->cgroup_idr, id); +if (cgrp) +return cgroup_css (cgrp, ss->subsys_id); +return NULL ; +} +#ifdef CONFIG_CGROUP_DEBUG static struct cgroup_subsys_state *debug_css_alloc (struct cgroup_subsys_state *parent_css)
Signature · 1 line
1.8.0.2
Tejun Heo
maintainerHello, Li.
kernel/cgroup.c struct cgroup_subsys_state *cgroup_css_from_dir(struct file *f, int id) · line 5721
Quoted 9 lines · Li Zefan
kernel/cgroup.c +9
-0+/** +* css_from_id - lookup css by id +* @ss: cgroup subsys to be looked into +* @id: the cgroup id +* +* Returns the css if there's valid one with @id, otherwise returns NULL. +* Should be called under rcu_read_lock(). +*/ +struct cgroup_subsys_state *css_from_id (struct cgroup_subsys *ss,int id)
Can we please do css_from_id(int id, struct cgroup_subsys *ss) instead?
Thanks.
Signature · 1 line
tejun
PATCH v2 1/1 cgroup: change cgroup_from_id() to css_from_id()
Now we want cgroup core to always provide the css to use to the subsystems, so change this API to css_from_id().
Uninline css_from_id(), because it's getting bigger and cgroup_css() has been unexported.
While at it, remove the #ifdef, and shuffle the order of the args.
---
v2: change the order of the args.
--- include/linux/cgroup.h | 20 ++------------------ kernel/cgroup.c | 22 ++++++++++++++++++++++ 2 files changed, 24 insertions(+), 18 deletions(-)
include/linux/cgroup.h +2 -18
@@ -742,27 +742,11 @@ static inline struct cgroup *task_cgroup(struct task_struct *task,return task_css (task, subsys_id)->cgroup; } -/** -* cgroup_from_id - lookup cgroup by id -* @ss: cgroup subsys to be looked into -* @id: the cgroup id -* -* Returns the cgroup if there's valid one with @id, otherwise returns NULL. -* Should be called under rcu_read_lock(). -*/ -static inline struct cgroup *cgroup_from_id (struct cgroup_subsys *ss,int id) -{ -#ifdef CONFIG_PROVE_RCU -rcu_lockdep_assert (rcu_read_lock_held () || -lockdep_is_held (&cgroup_mutex), -"cgroup_from_id() needs proper protection" ); -#endif -return idr_find (&ss->root->cgroup_idr, id); -} -struct cgroup_subsys_state *css_next_child (struct cgroup_subsys_state *pos,struct cgroup_subsys_state *parent); +struct cgroup_subsys_state *css_from_id (int id,struct cgroup_subsys *ss); +/** * css_for_each_child - iterate through children of a css * @pos: the css * to use as the loop cursor
kernel/cgroup.c +22 -0
@@ -5710,6 +5710,28 @@ struct cgroup_subsys_state *cgroup_css_from_dir(struct file *f, int id)return css ? css :ERR_PTR (-ENOENT ); } +/** +* css_from_id - lookup css by id +* @id: the cgroup id +* @ss: cgroup subsys to be looked into +* +* Returns the css if there's valid one with @id, otherwise returns NULL. +* Should be called under rcu_read_lock(). +*/ +struct cgroup_subsys_state *css_from_id (int id,struct cgroup_subsys *ss) +{ +struct cgroup *cgrp; + +rcu_lockdep_assert (rcu_read_lock_held () || +lockdep_is_held (&cgroup_mutex), +"css_from_id() needs proper protection" ); + + cgrp =idr_find (&ss->root->cgroup_idr, id); +if (cgrp) +return cgroup_css (cgrp, ss->subsys_id); +return NULL ; +} +#ifdef CONFIG_CGROUP_DEBUG static struct cgroup_subsys_state *debug_css_alloc (struct cgroup_subsys_state *parent_css)
Signature · 1 line
1.8.0.2
Quoted 9 lines · Li Zefan
Now we want cgroup core to always provide the css to use to the subsystems, so change this API to
css_from_id().Uninline
css_from_id(), because it's getting bigger andcgroup_css()has been unexported.While at it, remove the #ifdef, and shuffle the order of the args.
Signed-off-by Li Zefan <[email protected]>
Applied to cgroup/for-3.12.
Thanks.
Signature · 1 line
tejun