diff options
author | Pavel Emelyanov <xemul@openvz.org> | 2007-10-18 23:40:18 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-19 11:53:40 -0700 |
commit | bac0abd6174e427404dd197cdbefece31e97329b (patch) | |
tree | 68ed6bd8619552c921c9fb99e83cb04fcb235a39 /fs | |
parent | 19b9b9b54e5f115907efd56be2c3799775a46561 (diff) | |
download | lwn-bac0abd6174e427404dd197cdbefece31e97329b.tar.gz lwn-bac0abd6174e427404dd197cdbefece31e97329b.zip |
Isolate some explicit usage of task->tgid
With pid namespaces this field is now dangerous to use explicitly, so hide
it behind the helpers.
Also the pid and pgrp fields o task_struct and signal_struct are to be
deprecated. Unfortunately this patch cannot be sent right now as this
leads to tons of warnings, so start isolating them, and deprecate later.
Actually the p->tgid == pid has to be changed to has_group_leader_pid(),
but Oleg pointed out that in case of posix cpu timers this is the same, and
thread_group_leader() is more preferable.
Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Acked-by: Oleg Nesterov <oleg@tv-sign.ru>
Cc: Sukadev Bhattiprolu <sukadev@us.ibm.com>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/exec.c | 4 | ||||
-rw-r--r-- | fs/proc/base.c | 2 |
2 files changed, 3 insertions, 3 deletions
diff --git a/fs/exec.c b/fs/exec.c index 007d0d814bf0..2c942e2d14ea 100644 --- a/fs/exec.c +++ b/fs/exec.c @@ -841,8 +841,8 @@ static int de_thread(struct task_struct *tsk) */ tsk->start_time = leader->start_time; - BUG_ON(leader->tgid != tsk->tgid); - BUG_ON(tsk->pid == tsk->tgid); + BUG_ON(!same_thread_group(leader, tsk)); + BUG_ON(has_group_leader_pid(tsk)); /* * An exec() starts a new thread group with the * TGID of the previous thread group. Rehash the diff --git a/fs/proc/base.c b/fs/proc/base.c index db7636041c10..991482811f1e 100644 --- a/fs/proc/base.c +++ b/fs/proc/base.c @@ -2553,7 +2553,7 @@ static struct dentry *proc_task_lookup(struct inode *dir, struct dentry * dentry rcu_read_unlock(); if (!task) goto out; - if (leader->tgid != task->tgid) + if (!same_thread_group(leader, task)) goto out_drop_task; result = proc_task_instantiate(dir, dentry, task, NULL); |