cgroup: remove css_get_next
Now that we have generic and well ordered cgroup tree walkers there is no need to keep css_get_next in the place. Signed-off-by: Michal Hocko <mhocko@suse.cz> Acked-by: KAMEZAWA Hiroyuki <kamezawa.hiroyu@jp.fujitsu.com> Acked-by: Li Zefan <lizefan@huawei.com> Cc: Johannes Weiner <hannes@cmpxchg.org> Cc: Ying Han <yinghan@google.com> Cc: Tejun Heo <htejun@gmail.com> Cc: Glauber Costa <glommer@parallels.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
Родитель
16248d8fe6
Коммит
6d2488f64a
|
@ -687,13 +687,6 @@ void free_css_id(struct cgroup_subsys *ss, struct cgroup_subsys_state *css);
|
|||
|
||||
struct cgroup_subsys_state *css_lookup(struct cgroup_subsys *ss, int id);
|
||||
|
||||
/*
|
||||
* Get a cgroup whose id is greater than or equal to id under tree of root.
|
||||
* Returning a cgroup_subsys_state or NULL.
|
||||
*/
|
||||
struct cgroup_subsys_state *css_get_next(struct cgroup_subsys *ss, int id,
|
||||
struct cgroup_subsys_state *root, int *foundid);
|
||||
|
||||
/* Returns true if root is ancestor of cg */
|
||||
bool css_is_ancestor(struct cgroup_subsys_state *cg,
|
||||
const struct cgroup_subsys_state *root);
|
||||
|
|
|
@ -5416,55 +5416,6 @@ struct cgroup_subsys_state *css_lookup(struct cgroup_subsys *ss, int id)
|
|||
}
|
||||
EXPORT_SYMBOL_GPL(css_lookup);
|
||||
|
||||
/**
|
||||
* css_get_next - lookup next cgroup under specified hierarchy.
|
||||
* @ss: pointer to subsystem
|
||||
* @id: current position of iteration.
|
||||
* @root: pointer to css. search tree under this.
|
||||
* @foundid: position of found object.
|
||||
*
|
||||
* Search next css under the specified hierarchy of rootid. Calling under
|
||||
* rcu_read_lock() is necessary. Returns NULL if it reaches the end.
|
||||
*/
|
||||
struct cgroup_subsys_state *
|
||||
css_get_next(struct cgroup_subsys *ss, int id,
|
||||
struct cgroup_subsys_state *root, int *foundid)
|
||||
{
|
||||
struct cgroup_subsys_state *ret = NULL;
|
||||
struct css_id *tmp;
|
||||
int tmpid;
|
||||
int rootid = css_id(root);
|
||||
int depth = css_depth(root);
|
||||
|
||||
if (!rootid)
|
||||
return NULL;
|
||||
|
||||
BUG_ON(!ss->use_id);
|
||||
WARN_ON_ONCE(!rcu_read_lock_held());
|
||||
|
||||
/* fill start point for scan */
|
||||
tmpid = id;
|
||||
while (1) {
|
||||
/*
|
||||
* scan next entry from bitmap(tree), tmpid is updated after
|
||||
* idr_get_next().
|
||||
*/
|
||||
tmp = idr_get_next(&ss->idr, &tmpid);
|
||||
if (!tmp)
|
||||
break;
|
||||
if (tmp->depth >= depth && tmp->stack[depth] == rootid) {
|
||||
ret = rcu_dereference(tmp->css);
|
||||
if (ret) {
|
||||
*foundid = tmpid;
|
||||
break;
|
||||
}
|
||||
}
|
||||
/* continue to scan from next id */
|
||||
tmpid = tmpid + 1;
|
||||
}
|
||||
return ret;
|
||||
}
|
||||
|
||||
/*
|
||||
* get corresponding css from file open on cgroupfs directory
|
||||
*/
|
||||
|
|
Загрузка…
Ссылка в новой задаче