diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2014-11-01 11:10:28 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2014-12-10 21:30:57 -0500 |
commit | 3d3d35b1e94ec918fc0ae670663235bf197d8609 (patch) | |
tree | 28f1f6c1061c118544ff626bc336e826b270f2ca | |
parent | e149ed2b805fefdccf7ccdfc19eca22fdd4514ac (diff) | |
download | op-kernel-dev-3d3d35b1e94ec918fc0ae670663235bf197d8609.zip op-kernel-dev-3d3d35b1e94ec918fc0ae670663235bf197d8609.tar.gz |
kill proc_ns completely
procfs inodes need only the ns_ops part; nsfs inodes don't need it at all
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-rw-r--r-- | fs/proc/inode.c | 3 | ||||
-rw-r--r-- | fs/proc/internal.h | 7 | ||||
-rw-r--r-- | fs/proc/namespaces.c | 6 |
3 files changed, 5 insertions, 11 deletions
diff --git a/fs/proc/inode.c b/fs/proc/inode.c index 57a9be9..8420a2f 100644 --- a/fs/proc/inode.c +++ b/fs/proc/inode.c @@ -66,8 +66,7 @@ static struct inode *proc_alloc_inode(struct super_block *sb) ei->pde = NULL; ei->sysctl = NULL; ei->sysctl_entry = NULL; - ei->ns.ns = NULL; - ei->ns.ns_ops = NULL; + ei->ns_ops = NULL; inode = &ei->vfs_inode; inode->i_mtime = inode->i_atime = inode->i_ctime = CURRENT_TIME; return inode; diff --git a/fs/proc/internal.h b/fs/proc/internal.h index 0fabc48..d689fd6 100644 --- a/fs/proc/internal.h +++ b/fs/proc/internal.h @@ -57,11 +57,6 @@ union proc_op { struct task_struct *task); }; -struct proc_ns { - struct ns_common *ns; - const struct proc_ns_operations *ns_ops; -}; - struct proc_inode { struct pid *pid; int fd; @@ -69,7 +64,7 @@ struct proc_inode { struct proc_dir_entry *pde; struct ctl_table_header *sysctl; struct ctl_table *sysctl_entry; - struct proc_ns ns; + const struct proc_ns_operations *ns_ops; struct inode vfs_inode; }; diff --git a/fs/proc/namespaces.c b/fs/proc/namespaces.c index aaaac77..c9eac45 100644 --- a/fs/proc/namespaces.c +++ b/fs/proc/namespaces.c @@ -33,7 +33,7 @@ static const struct proc_ns_operations *ns_entries[] = { static void *proc_ns_follow_link(struct dentry *dentry, struct nameidata *nd) { struct inode *inode = dentry->d_inode; - const struct proc_ns_operations *ns_ops = PROC_I(inode)->ns.ns_ops; + const struct proc_ns_operations *ns_ops = PROC_I(inode)->ns_ops; struct task_struct *task; struct path ns_path; void *error = ERR_PTR(-EACCES); @@ -54,7 +54,7 @@ static void *proc_ns_follow_link(struct dentry *dentry, struct nameidata *nd) static int proc_ns_readlink(struct dentry *dentry, char __user *buffer, int buflen) { struct inode *inode = dentry->d_inode; - const struct proc_ns_operations *ns_ops = PROC_I(inode)->ns.ns_ops; + const struct proc_ns_operations *ns_ops = PROC_I(inode)->ns_ops; struct task_struct *task; char name[50]; int res = -EACCES; @@ -92,7 +92,7 @@ static int proc_ns_instantiate(struct inode *dir, ei = PROC_I(inode); inode->i_mode = S_IFLNK|S_IRWXUGO; inode->i_op = &proc_ns_link_inode_operations; - ei->ns.ns_ops = ns_ops; + ei->ns_ops = ns_ops; d_set_d_op(dentry, &pid_dentry_operations); d_add(dentry, inode); |