Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 6c5f3e7b authored by Pavel Emelyanov's avatar Pavel Emelyanov Committed by Linus Torvalds
Browse files

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: default avatarPavel Emelyanov <xemul@openvz.org>
Reviewed-by: default avatarOleg Nesterov <oleg@tv-sign.ru>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Cc: Balbir Singh <balbir@in.ibm.com>
Signed-off-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@linux-foundation.org>
parent fea9d175
Loading
Loading
Loading
Loading
+1 −1
Original line number Diff line number Diff line
@@ -309,7 +309,7 @@ pid_t f_getown(struct file *filp)
{
	pid_t pid;
	read_lock(&filp->f_owner.lock);
	pid = pid_nr_ns(filp->f_owner.pid, current->nsproxy->pid_ns);
	pid = pid_vnr(filp->f_owner.pid);
	if (filp->f_owner.pid_type == PIDTYPE_PGID)
		pid = -pid;
	read_unlock(&filp->f_owner.lock);
+2 −3
Original line number Diff line number Diff line
@@ -658,8 +658,7 @@ posix_test_lock(struct file *filp, struct file_lock *fl)
	if (cfl) {
		__locks_copy_lock(fl, cfl);
		if (cfl->fl_nspid)
			fl->fl_pid = pid_nr_ns(cfl->fl_nspid,
						task_active_pid_ns(current));
			fl->fl_pid = pid_vnr(cfl->fl_nspid);
	} else
		fl->fl_type = F_UNLCK;
	unlock_kernel();
@@ -2084,7 +2083,7 @@ static void lock_get_status(struct seq_file *f, struct file_lock *fl,
	unsigned int fl_pid;

	if (fl->fl_nspid)
		fl_pid = pid_nr_ns(fl->fl_nspid, task_active_pid_ns(current));
		fl_pid = pid_vnr(fl->fl_nspid);
	else
		fl_pid = fl->fl_pid;

+1 −2
Original line number Diff line number Diff line
@@ -332,8 +332,7 @@ static ssize_t mqueue_read_file(struct file *filp, char __user *u_data,
			(info->notify_owner &&
			 info->notify.sigev_notify == SIGEV_SIGNAL) ?
				info->notify.sigev_signo : 0,
			pid_nr_ns(info->notify_owner,
				current->nsproxy->pid_ns));
			pid_vnr(info->notify_owner));
	spin_unlock(&info->lock);
	buffer[sizeof(buffer)-1] = '\0';
	slen = strlen(buffer)+1;
+3 −3
Original line number Diff line number Diff line
@@ -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);
+1 −7
Original line number Diff line number Diff line
@@ -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);
Loading