|
@@ -5033,6 +5033,8 @@ css_get_next(struct cgroup_subsys *ss, int id,
|
|
|
return NULL;
|
|
|
|
|
|
BUG_ON(!ss->use_id);
|
|
|
+ WARN_ON_ONCE(!rcu_read_lock_held());
|
|
|
+
|
|
|
/* fill start point for scan */
|
|
|
tmpid = id;
|
|
|
while (1) {
|
|
@@ -5040,10 +5042,7 @@ css_get_next(struct cgroup_subsys *ss, int id,
|
|
|
* scan next entry from bitmap(tree), tmpid is updated after
|
|
|
* idr_get_next().
|
|
|
*/
|
|
|
- spin_lock(&ss->id_lock);
|
|
|
tmp = idr_get_next(&ss->idr, &tmpid);
|
|
|
- spin_unlock(&ss->id_lock);
|
|
|
-
|
|
|
if (!tmp)
|
|
|
break;
|
|
|
if (tmp->depth >= depth && tmp->stack[depth] == rootid) {
|