diff options
author | Pavel Emelyanov <xemul@openvz.org> | 2008-02-08 04:19:20 -0800 |
---|---|---|
committer | Linus Torvalds <torvalds@woody.linux-foundation.org> | 2008-02-08 09:22:29 -0800 |
commit | 6c5f3e7b43300508fe3947ff3cfff0f86043bb57 (patch) | |
tree | 9843b8897ec3357b09f62bb6423cd4753e1d4516 /kernel | |
parent | fea9d175545b38cb3e84569400419eb81bc90fa3 (diff) | |
download | op-kernel-dev-6c5f3e7b43300508fe3947ff3cfff0f86043bb57.zip op-kernel-dev-6c5f3e7b43300508fe3947ff3cfff0f86043bb57.tar.gz |
Pidns: make full use of xxx_vnr() calls
Some time ago the xxx_vnr() calls (e.g. pid_vnr or find_task_by_vpid) were
_all_ converted to operate on the current pid namespace. After this each call
like xxx_nr_ns(foo, current->nsproxy->pid_ns) is nothing but a xxx_vnr(foo)
one.
Switch all the xxx_nr_ns() callers to use the xxx_vnr() calls where
appropriate.
Signed-off-by: Pavel Emelyanov <xemul@openvz.org>
Reviewed-by: Oleg Nesterov <oleg@tv-sign.ru>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Balbir Singh <balbir@in.ibm.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel')
-rw-r--r-- | kernel/exit.c | 6 | ||||
-rw-r--r-- | kernel/fork.c | 8 | ||||
-rw-r--r-- | kernel/sys.c | 7 | ||||
-rw-r--r-- | kernel/sysctl.c | 2 | ||||
-rw-r--r-- | kernel/timer.c | 2 |
5 files changed, 8 insertions, 17 deletions
diff --git a/kernel/exit.c b/kernel/exit.c index 2567de3..81345ba 100644 --- a/kernel/exit.c +++ b/kernel/exit.c @@ -1174,7 +1174,7 @@ static int wait_task_zombie(struct task_struct *p, int noreap, { unsigned long state; int retval, status, traced; - pid_t pid = task_pid_nr_ns(p, current->nsproxy->pid_ns); + pid_t pid = task_pid_vnr(p); if (unlikely(noreap)) { uid_t uid = p->uid; @@ -1369,7 +1369,7 @@ unlock_sig: * possibly take page faults for user memory. */ get_task_struct(p); - pid = task_pid_nr_ns(p, current->nsproxy->pid_ns); + pid = task_pid_vnr(p); why = (p->ptrace & PT_PTRACED) ? CLD_TRAPPED : CLD_STOPPED; read_unlock(&tasklist_lock); @@ -1428,7 +1428,7 @@ static int wait_task_continued(struct task_struct *p, int noreap, p->signal->flags &= ~SIGNAL_STOP_CONTINUED; spin_unlock_irq(&p->sighand->siglock); - pid = task_pid_nr_ns(p, current->nsproxy->pid_ns); + pid = task_pid_vnr(p); uid = p->uid; get_task_struct(p); read_unlock(&tasklist_lock); diff --git a/kernel/fork.c b/kernel/fork.c index ca54d97..31a2bad 100644 --- a/kernel/fork.c +++ b/kernel/fork.c @@ -1488,13 +1488,7 @@ long do_fork(unsigned long clone_flags, if (!IS_ERR(p)) { struct completion vfork; - /* - * this is enough to call pid_nr_ns here, but this if - * improves optimisation of regular fork() - */ - nr = (clone_flags & CLONE_NEWPID) ? - task_pid_nr_ns(p, current->nsproxy->pid_ns) : - task_pid_vnr(p); + nr = task_pid_vnr(p); if (clone_flags & CLONE_PARENT_SETTID) put_user(nr, parent_tidptr); diff --git a/kernel/sys.c b/kernel/sys.c index 5a61f80..a626116 100644 --- a/kernel/sys.c +++ b/kernel/sys.c @@ -991,17 +991,14 @@ asmlinkage long sys_getpgid(pid_t pid) else { int retval; struct task_struct *p; - struct pid_namespace *ns; - - ns = current->nsproxy->pid_ns; read_lock(&tasklist_lock); - p = find_task_by_pid_ns(pid, ns); + p = find_task_by_vpid(pid); retval = -ESRCH; if (p) { retval = security_task_getpgid(p); if (!retval) - retval = task_pgrp_nr_ns(p, ns); + retval = task_pgrp_vnr(p); } read_unlock(&tasklist_lock); return retval; diff --git a/kernel/sysctl.c b/kernel/sysctl.c index 9dadc9d..89d963f 100644 --- a/kernel/sysctl.c +++ b/kernel/sysctl.c @@ -2488,7 +2488,7 @@ static int proc_do_cad_pid(struct ctl_table *table, int write, struct file *filp pid_t tmp; int r; - tmp = pid_nr_ns(cad_pid, current->nsproxy->pid_ns); + tmp = pid_vnr(cad_pid); r = __do_proc_dointvec(&tmp, table, write, filp, buffer, lenp, ppos, NULL, NULL); diff --git a/kernel/timer.c b/kernel/timer.c index 70b29b5..1c4183c 100644 --- a/kernel/timer.c +++ b/kernel/timer.c @@ -979,7 +979,7 @@ asmlinkage long sys_getppid(void) int pid; rcu_read_lock(); - pid = task_tgid_nr_ns(current->real_parent, current->nsproxy->pid_ns); + pid = task_tgid_vnr(current->real_parent); rcu_read_unlock(); return pid; |