aboutsummaryrefslogtreecommitdiffstats
path: root/kernel
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2014-11-01 03:13:17 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2014-12-04 14:34:54 -0500
commitf77c80142e1afe6d5c16975ca5d7d1fc324b16f9 (patch)
treec2c8f726402610aee77ccca0627a4c38f944640b /kernel
parent33c429405a2c8d9e42afb9fee88a63cfb2de1e98 (diff)
bury struct proc_ns in fs/proc
a) make get_proc_ns() return a pointer to struct ns_common b) mirror ns_ops in dentry->d_fsdata of ns dentries, so that is_mnt_ns_file() could get away with fewer dereferences. That way struct proc_ns becomes invisible outside of fs/proc/*.c Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'kernel')
-rw-r--r--kernel/nsproxy.c4
1 files changed, 1 insertions, 3 deletions
diff --git a/kernel/nsproxy.c b/kernel/nsproxy.c
index 87c37221cb7f..49746c81ad8d 100644
--- a/kernel/nsproxy.c
+++ b/kernel/nsproxy.c
@@ -222,7 +222,6 @@ SYSCALL_DEFINE2(setns, int, fd, int, nstype)
222{ 222{
223 struct task_struct *tsk = current; 223 struct task_struct *tsk = current;
224 struct nsproxy *new_nsproxy; 224 struct nsproxy *new_nsproxy;
225 struct proc_ns *ei;
226 struct file *file; 225 struct file *file;
227 struct ns_common *ns; 226 struct ns_common *ns;
228 int err; 227 int err;
@@ -232,8 +231,7 @@ SYSCALL_DEFINE2(setns, int, fd, int, nstype)
232 return PTR_ERR(file); 231 return PTR_ERR(file);
233 232
234 err = -EINVAL; 233 err = -EINVAL;
235 ei = get_proc_ns(file_inode(file)); 234 ns = get_proc_ns(file_inode(file));
236 ns = ei->ns;
237 if (nstype && (ns->ops->type != nstype)) 235 if (nstype && (ns->ops->type != nstype))
238 goto out; 236 goto out;
239 237