|
@@ -1813,10 +1813,8 @@ int cgroup_attach_task(struct cgroup *cgrp, struct task_struct *tsk)
|
|
|
|
|
|
/* Update the css_set linked lists if we're using them */
|
|
|
write_lock(&css_set_lock);
|
|
|
- if (!list_empty(&tsk->cg_list)) {
|
|
|
- list_del(&tsk->cg_list);
|
|
|
- list_add(&tsk->cg_list, &newcg->tasks);
|
|
|
- }
|
|
|
+ if (!list_empty(&tsk->cg_list))
|
|
|
+ list_move(&tsk->cg_list, &newcg->tasks);
|
|
|
write_unlock(&css_set_lock);
|
|
|
|
|
|
for_each_subsys(root, ss) {
|
|
@@ -3655,12 +3653,12 @@ again:
|
|
|
spin_lock(&release_list_lock);
|
|
|
set_bit(CGRP_REMOVED, &cgrp->flags);
|
|
|
if (!list_empty(&cgrp->release_list))
|
|
|
- list_del(&cgrp->release_list);
|
|
|
+ list_del_init(&cgrp->release_list);
|
|
|
spin_unlock(&release_list_lock);
|
|
|
|
|
|
cgroup_lock_hierarchy(cgrp->root);
|
|
|
/* delete this cgroup from parent->children */
|
|
|
- list_del(&cgrp->sibling);
|
|
|
+ list_del_init(&cgrp->sibling);
|
|
|
cgroup_unlock_hierarchy(cgrp->root);
|
|
|
|
|
|
d = dget(cgrp->dentry);
|
|
@@ -3879,7 +3877,7 @@ void cgroup_unload_subsys(struct cgroup_subsys *ss)
|
|
|
subsys[ss->subsys_id] = NULL;
|
|
|
|
|
|
/* remove subsystem from rootnode's list of subsystems */
|
|
|
- list_del(&ss->sibling);
|
|
|
+ list_del_init(&ss->sibling);
|
|
|
|
|
|
/*
|
|
|
* disentangle the css from all css_sets attached to the dummytop. as
|
|
@@ -4241,7 +4239,7 @@ void cgroup_exit(struct task_struct *tsk, int run_callbacks)
|
|
|
if (!list_empty(&tsk->cg_list)) {
|
|
|
write_lock(&css_set_lock);
|
|
|
if (!list_empty(&tsk->cg_list))
|
|
|
- list_del(&tsk->cg_list);
|
|
|
+ list_del_init(&tsk->cg_list);
|
|
|
write_unlock(&css_set_lock);
|
|
|
}
|
|
|
|