diff options
Diffstat (limited to 'fs/stat.c')
-rw-r--r-- | fs/stat.c | 19 |
1 files changed, 10 insertions, 9 deletions
@@ -62,8 +62,8 @@ int vfs_stat_fd(int dfd, char __user *name, struct kstat *stat) | |||
62 | 62 | ||
63 | error = __user_walk_fd(dfd, name, LOOKUP_FOLLOW, &nd); | 63 | error = __user_walk_fd(dfd, name, LOOKUP_FOLLOW, &nd); |
64 | if (!error) { | 64 | if (!error) { |
65 | error = vfs_getattr(nd.mnt, nd.dentry, stat); | 65 | error = vfs_getattr(nd.path.mnt, nd.path.dentry, stat); |
66 | path_release(&nd); | 66 | path_put(&nd.path); |
67 | } | 67 | } |
68 | return error; | 68 | return error; |
69 | } | 69 | } |
@@ -82,8 +82,8 @@ int vfs_lstat_fd(int dfd, char __user *name, struct kstat *stat) | |||
82 | 82 | ||
83 | error = __user_walk_fd(dfd, name, 0, &nd); | 83 | error = __user_walk_fd(dfd, name, 0, &nd); |
84 | if (!error) { | 84 | if (!error) { |
85 | error = vfs_getattr(nd.mnt, nd.dentry, stat); | 85 | error = vfs_getattr(nd.path.mnt, nd.path.dentry, stat); |
86 | path_release(&nd); | 86 | path_put(&nd.path); |
87 | } | 87 | } |
88 | return error; | 88 | return error; |
89 | } | 89 | } |
@@ -302,17 +302,18 @@ asmlinkage long sys_readlinkat(int dfd, const char __user *path, | |||
302 | 302 | ||
303 | error = __user_walk_fd(dfd, path, 0, &nd); | 303 | error = __user_walk_fd(dfd, path, 0, &nd); |
304 | if (!error) { | 304 | if (!error) { |
305 | struct inode * inode = nd.dentry->d_inode; | 305 | struct inode *inode = nd.path.dentry->d_inode; |
306 | 306 | ||
307 | error = -EINVAL; | 307 | error = -EINVAL; |
308 | if (inode->i_op && inode->i_op->readlink) { | 308 | if (inode->i_op && inode->i_op->readlink) { |
309 | error = security_inode_readlink(nd.dentry); | 309 | error = security_inode_readlink(nd.path.dentry); |
310 | if (!error) { | 310 | if (!error) { |
311 | touch_atime(nd.mnt, nd.dentry); | 311 | touch_atime(nd.path.mnt, nd.path.dentry); |
312 | error = inode->i_op->readlink(nd.dentry, buf, bufsiz); | 312 | error = inode->i_op->readlink(nd.path.dentry, |
313 | buf, bufsiz); | ||
313 | } | 314 | } |
314 | } | 315 | } |
315 | path_release(&nd); | 316 | path_put(&nd.path); |
316 | } | 317 | } |
317 | return error; | 318 | return error; |
318 | } | 319 | } |