Hello, On Tue, Dec 20, 2011 at 03:14:32PM -0800, Mandeep Singh Baines wrote: > @@ -1942,9 +1917,17 @@ int cgroup_attach_task(struct cgroup *cgrp, struct task_struct *tsk) > } > } > > - retval = cgroup_task_migrate(cgrp, oldcgrp, tsk, false); > - if (retval) > + task_lock(tsk); > + oldcg = tsk->cgroups; > + task_unlock(tsk); Probably this is patch order issue w/ Frederic's patch but we don't need task_lock here, right? > @@ -2171,17 +2088,18 @@ int cgroup_attach_proc(struct cgroup *cgrp, struct task_struct *leader) > * step 2: make sure css_sets exist for all threads to be migrated. > * we use find_css_set, which allocates a new one if necessary. > */ > - INIT_LIST_HEAD(&newcg_list); > for (i = 0; i < group_size; i++) { > tc = flex_array_get(group, i); > /* get old css_set pointer */ > task_lock(tc->task); > oldcg = tc->task->cgroups; > task_unlock(tc->task); > - /* if we don't already have it in the list get a new one */ > - if (!css_set_fetched(cgrp, tc->task, oldcg, &newcg_list)) > - if (retval = css_set_prefetch(cgrp, oldcg, &newcg_list)) > - goto out_list_teardown; > + tc->cg = find_css_set(oldcg, cgrp); > + if (!tc->cg) { > + retval = -ENOMEM; > + css_set_refs = i + 1; > + goto out_list_teardown; > + } Nice cleanup, but can't the above be merged into the loop which builds the flex array? Thanks. -- tejun _______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linuxfoundation.org/mailman/listinfo/containers