summaryrefslogtreecommitdiffstats
path: root/drivers/char/tty_io.c
diff options
context:
space:
mode:
authorOleg Nesterov <oleg@redhat.com>2009-04-02 16:58:38 -0700
committerLinus Torvalds <torvalds@linux-foundation.org>2009-04-02 19:05:02 -0700
commit52ee2dfdd4f51cf422ea6a96a0846dc94244aa37 (patch)
treee15753e01d2c2fbe980edc45f78a9ae77d2cf891 /drivers/char/tty_io.c
parent2ae448efc87df6d328f5835969076c7f9fce59c3 (diff)
downloadlinux-52ee2dfdd4f51cf422ea6a96a0846dc94244aa37.tar.gz
linux-52ee2dfdd4f51cf422ea6a96a0846dc94244aa37.tar.bz2
linux-52ee2dfdd4f51cf422ea6a96a0846dc94244aa37.zip
pids: refactor vnr/nr_ns helpers to make them safe
Inho, the safety rules for vnr/nr_ns helpers are horrible and buggy. task_pid_nr_ns(task) needs rcu/tasklist depending on task == current. As for "special" pids, vnr/nr_ns helpers always need rcu. However, if task != current, they are unsafe even under rcu lock, we can't trust task->group_leader without the special checks. And almost every helper has a callsite which needs a fix. Also, it is a bit annoying that the implementations of, say, task_pgrp_vnr() and task_pgrp_nr_ns() are not "symmetrical". This patch introduces the new helper, __task_pid_nr_ns(), which is always safe to use, and turns all other helpers into the trivial wrappers. After this I'll send another patch which converts task_tgid_xxx() as well, they're are a bit special. Signed-off-by: Oleg Nesterov <oleg@redhat.com> Cc: Louis Rilling <Louis.Rilling@kerlabs.com> Cc: "Eric W. Biederman" <ebiederm@xmission.com> Cc: Pavel Emelyanov <xemul@openvz.org> Cc: Sukadev Bhattiprolu <sukadev@linux.vnet.ibm.com> Cc: Roland McGrath <roland@redhat.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/char/tty_io.c')
0 files changed, 0 insertions, 0 deletions