summaryrefslogtreecommitdiffstats
path: root/fs/proc/namespaces.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/proc/namespaces.c')
-rw-r--r--fs/proc/namespaces.c9
1 files changed, 6 insertions, 3 deletions
diff --git a/fs/proc/namespaces.c b/fs/proc/namespaces.c
index f6e8354b8cea..63861c15e109 100644
--- a/fs/proc/namespaces.c
+++ b/fs/proc/namespaces.c
@@ -30,14 +30,17 @@ static const struct proc_ns_operations *ns_entries[] = {
30 &mntns_operations, 30 &mntns_operations,
31}; 31};
32 32
33static const char *proc_ns_follow_link(struct dentry *dentry, void **cookie) 33static const char *proc_ns_get_link(struct dentry *dentry,
34 struct inode *inode, void **cookie)
34{ 35{
35 struct inode *inode = d_inode(dentry);
36 const struct proc_ns_operations *ns_ops = PROC_I(inode)->ns_ops; 36 const struct proc_ns_operations *ns_ops = PROC_I(inode)->ns_ops;
37 struct task_struct *task; 37 struct task_struct *task;
38 struct path ns_path; 38 struct path ns_path;
39 void *error = ERR_PTR(-EACCES); 39 void *error = ERR_PTR(-EACCES);
40 40
41 if (!dentry)
42 return ERR_PTR(-ECHILD);
43
41 task = get_proc_task(inode); 44 task = get_proc_task(inode);
42 if (!task) 45 if (!task)
43 return error; 46 return error;
@@ -74,7 +77,7 @@ static int proc_ns_readlink(struct dentry *dentry, char __user *buffer, int bufl
74 77
75static const struct inode_operations proc_ns_link_inode_operations = { 78static const struct inode_operations proc_ns_link_inode_operations = {
76 .readlink = proc_ns_readlink, 79 .readlink = proc_ns_readlink,
77 .follow_link = proc_ns_follow_link, 80 .get_link = proc_ns_get_link,
78 .setattr = proc_setattr, 81 .setattr = proc_setattr,
79}; 82};
80 83