aboutsummaryrefslogtreecommitdiffstats
path: root/fs/proc/root.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/proc/root.c')
-rw-r--r--fs/proc/root.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/fs/proc/root.c b/fs/proc/root.c
index 5dbadecb234d..6296c7626963 100644
--- a/fs/proc/root.c
+++ b/fs/proc/root.c
@@ -149,6 +149,8 @@ static void proc_kill_sb(struct super_block *sb)
149 ns = (struct pid_namespace *)sb->s_fs_info; 149 ns = (struct pid_namespace *)sb->s_fs_info;
150 if (ns->proc_self) 150 if (ns->proc_self)
151 dput(ns->proc_self); 151 dput(ns->proc_self);
152 if (ns->proc_thread_self)
153 dput(ns->proc_thread_self);
152 kill_anon_super(sb); 154 kill_anon_super(sb);
153 put_pid_ns(ns); 155 put_pid_ns(ns);
154} 156}
@@ -170,7 +172,8 @@ void __init proc_root_init(void)
170 return; 172 return;
171 173
172 proc_self_init(); 174 proc_self_init();
173 proc_symlink("mounts", NULL, "self/mounts"); 175 proc_thread_self_init();
176 proc_symlink("mounts", NULL, "thread-self/mounts");
174 177
175 proc_net_init(); 178 proc_net_init();
176 179
@@ -199,10 +202,10 @@ static int proc_root_getattr(struct vfsmount *mnt, struct dentry *dentry, struct
199 202
200static struct dentry *proc_root_lookup(struct inode * dir, struct dentry * dentry, unsigned int flags) 203static struct dentry *proc_root_lookup(struct inode * dir, struct dentry * dentry, unsigned int flags)
201{ 204{
202 if (!proc_lookup(dir, dentry, flags)) 205 if (!proc_pid_lookup(dir, dentry, flags))
203 return NULL; 206 return NULL;
204 207
205 return proc_pid_lookup(dir, dentry, flags); 208 return proc_lookup(dir, dentry, flags);
206} 209}
207 210
208static int proc_root_readdir(struct file *file, struct dir_context *ctx) 211static int proc_root_readdir(struct file *file, struct dir_context *ctx)