mirror of https://gitee.com/openkylin/linux.git
sys_getsid: don't use ->nsproxy directly
With the new semantics of find_vpid() we don't need to play with ->nsproxy explicitely, _vxx() do the right things. Also s/tasklist/rcu/. Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru> Cc: "Eric W. Biederman" <ebiederm@xmission.com> Cc: Pavel Emelyanov <xemul@openvz.org> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
This commit is contained in:
parent
44c4e1b258
commit
ac9a8e3f0f
11
kernel/sys.c
11
kernel/sys.c
|
@ -1025,19 +1025,16 @@ asmlinkage long sys_getsid(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);
|
||||
rcu_read_lock();
|
||||
p = find_task_by_vpid(pid);
|
||||
retval = -ESRCH;
|
||||
if (p) {
|
||||
retval = security_task_getsid(p);
|
||||
if (!retval)
|
||||
retval = task_session_nr_ns(p, ns);
|
||||
retval = task_session_vnr(p);
|
||||
}
|
||||
read_unlock(&tasklist_lock);
|
||||
rcu_read_unlock();
|
||||
return retval;
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue