[PATCH] Fix check for thread being a group leader in memcgroup

From: Pavel Emelyanov
Date: Fri Mar 14 2008 - 09:44:32 EST


The check t->pid == t->pid is not the blessed way to check
whether a task is a group leader.

This is not about the code beautifulness only, but about
pid namespaces fixes - both the tgid and the pid fields on
the task_struct are (slowly :( ) becoming deprecated.

Besides, the thread_group_leader() macro makes only one
dereference :)

Signed-off-by: Pavel Emelyanov <xemul@xxxxxxxxxx>

---

diff --git a/mm/memcontrol.c b/mm/memcontrol.c
index eb681a6..bc4cac6 100644
--- a/mm/memcontrol.c
+++ b/mm/memcontrol.c
@@ -1065,7 +1065,7 @@ static void mem_cgroup_move_task(struct cgroup_subsys *ss,
* Only thread group leaders are allowed to migrate, the mm_struct is
* in effect owned by the leader
*/
- if (p->tgid != p->pid)
+ if (!thread_group_leader(p))
goto out;

css_get(&mem->css);

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/