diff options
author | Pavel Emelyanov <xemul@openvz.org> | 2007-10-19 02:40:18 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2007-10-19 14:53:40 -0400 |
commit | bac0abd6174e427404dd197cdbefece31e97329b (patch) | |
tree | 68ed6bd8619552c921c9fb99e83cb04fcb235a39 /kernel/posix-timers.c | |
parent | 19b9b9b54e5f115907efd56be2c3799775a46561 (diff) |
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 'kernel/posix-timers.c')
-rw-r--r-- | kernel/posix-timers.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/kernel/posix-timers.c b/kernel/posix-timers.c index d11f579d189a..35b4bbfc78ff 100644 --- a/kernel/posix-timers.c +++ b/kernel/posix-timers.c | |||
@@ -404,7 +404,7 @@ static struct task_struct * good_sigevent(sigevent_t * event) | |||
404 | 404 | ||
405 | if ((event->sigev_notify & SIGEV_THREAD_ID ) && | 405 | if ((event->sigev_notify & SIGEV_THREAD_ID ) && |
406 | (!(rtn = find_task_by_pid(event->sigev_notify_thread_id)) || | 406 | (!(rtn = find_task_by_pid(event->sigev_notify_thread_id)) || |
407 | rtn->tgid != current->tgid || | 407 | !same_thread_group(rtn, current) || |
408 | (event->sigev_notify & ~SIGEV_THREAD_ID) != SIGEV_SIGNAL)) | 408 | (event->sigev_notify & ~SIGEV_THREAD_ID) != SIGEV_SIGNAL)) |
409 | return NULL; | 409 | return NULL; |
410 | 410 | ||
@@ -608,7 +608,7 @@ static struct k_itimer * lock_timer(timer_t timer_id, unsigned long *flags) | |||
608 | spin_lock(&timr->it_lock); | 608 | spin_lock(&timr->it_lock); |
609 | 609 | ||
610 | if ((timr->it_id != timer_id) || !(timr->it_process) || | 610 | if ((timr->it_id != timer_id) || !(timr->it_process) || |
611 | timr->it_process->tgid != current->tgid) { | 611 | !same_thread_group(timr->it_process, current)) { |
612 | spin_unlock(&timr->it_lock); | 612 | spin_unlock(&timr->it_lock); |
613 | spin_unlock_irqrestore(&idr_lock, *flags); | 613 | spin_unlock_irqrestore(&idr_lock, *flags); |
614 | timr = NULL; | 614 | timr = NULL; |