diff options
Diffstat (limited to 'fs/proc/root.c')
-rw-r--r-- | fs/proc/root.c | 9 |
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 | ||
200 | static struct dentry *proc_root_lookup(struct inode * dir, struct dentry * dentry, unsigned int flags) | 203 | static 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 | ||
208 | static int proc_root_readdir(struct file *file, struct dir_context *ctx) | 211 | static int proc_root_readdir(struct file *file, struct dir_context *ctx) |