aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/pid.c
diff options
context:
space:
mode:
authorPavel Emelyanov <xemul@openvz.org>2007-10-19 02:40:06 -0400
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-10-19 14:53:39 -0400
commit7af5729474b5b8ad385adadab78d6e723e7655a3 (patch)
tree197f8da3e7afd65554f0c0a070eb93036b720fa8 /kernel/pid.c
parent8ef047aaaeb811247a5639c92e2f2ae1221a28dd (diff)
pid namespaces: helpers to obtain pid numbers
When showing pid to user or getting the pid numerical id for in-kernel use the value of this id may differ depending on the namespace. This set of helpers is used to get the global pid nr, the virtual (i.e. seen by task in its namespace) nr and the nr as it is seen from the specified namespace. Signed-off-by: Pavel Emelyanov <xemul@openvz.org> Cc: Oleg Nesterov <oleg@tv-sign.ru> Cc: Sukadev Bhattiprolu <sukadev@us.ibm.com> Cc: Paul Menage <menage@google.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/pid.c')
-rw-r--r--kernel/pid.c13
1 files changed, 13 insertions, 0 deletions
diff --git a/kernel/pid.c b/kernel/pid.c
index 8132a6ddfa10..6eb14841b734 100644
--- a/kernel/pid.c
+++ b/kernel/pid.c
@@ -376,6 +376,19 @@ struct pid *find_get_pid(pid_t nr)
376 return pid; 376 return pid;
377} 377}
378 378
379pid_t pid_nr_ns(struct pid *pid, struct pid_namespace *ns)
380{
381 struct upid *upid;
382 pid_t nr = 0;
383
384 if (pid && ns->level <= pid->level) {
385 upid = &pid->numbers[ns->level];
386 if (upid->ns == ns)
387 nr = upid->nr;
388 }
389 return nr;
390}
391
379/* 392/*
380 * Used by proc to find the first pid that is greater then or equal to nr. 393 * Used by proc to find the first pid that is greater then or equal to nr.
381 * 394 *