Files
linux/kernel
Oleg Nesterov 52ee2dfdd4 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>
2009-04-02 19:05:02 -07:00
..
2009-04-02 19:04:55 -07:00
2008-10-16 11:21:30 -07:00
2008-07-28 14:37:38 +02:00
2009-03-30 21:46:55 +02:00
2007-07-16 09:05:50 -07:00
2009-02-21 14:17:17 -08:00
2009-01-14 18:09:02 +01:00
2009-02-10 00:41:54 +01:00
2008-09-02 19:21:40 -07:00
2009-03-30 22:05:16 +10:30
2009-02-18 19:26:33 +01:00
2009-02-26 21:56:07 +01:00
2009-01-06 11:07:15 +01:00
2008-02-06 10:41:02 -08:00
2009-03-24 10:52:46 +11:00