diff options
Diffstat (limited to 'fs/nfsd/nfs3proc.c')
-rw-r--r-- | fs/nfsd/nfs3proc.c | 11 |
1 files changed, 9 insertions, 2 deletions
diff --git a/fs/nfsd/nfs3proc.c b/fs/nfsd/nfs3proc.c index 041380fe667b..6d2dfed1de08 100644 --- a/fs/nfsd/nfs3proc.c +++ b/fs/nfsd/nfs3proc.c | |||
@@ -56,13 +56,20 @@ static int | |||
56 | nfsd3_proc_getattr(struct svc_rqst *rqstp, struct nfsd_fhandle *argp, | 56 | nfsd3_proc_getattr(struct svc_rqst *rqstp, struct nfsd_fhandle *argp, |
57 | struct nfsd3_attrstat *resp) | 57 | struct nfsd3_attrstat *resp) |
58 | { | 58 | { |
59 | int nfserr; | 59 | int err, nfserr; |
60 | 60 | ||
61 | dprintk("nfsd: GETATTR(3) %s\n", | 61 | dprintk("nfsd: GETATTR(3) %s\n", |
62 | SVCFH_fmt(&argp->fh)); | 62 | SVCFH_fmt(&argp->fh)); |
63 | 63 | ||
64 | fh_copy(&resp->fh, &argp->fh); | 64 | fh_copy(&resp->fh, &argp->fh); |
65 | nfserr = fh_verify(rqstp, &resp->fh, 0, MAY_NOP); | 65 | nfserr = fh_verify(rqstp, &resp->fh, 0, MAY_NOP); |
66 | if (nfserr) | ||
67 | RETURN_STATUS(nfserr); | ||
68 | |||
69 | err = vfs_getattr(resp->fh.fh_export->ex_mnt, | ||
70 | resp->fh.fh_dentry, &resp->stat); | ||
71 | nfserr = nfserrno(err); | ||
72 | |||
66 | RETURN_STATUS(nfserr); | 73 | RETURN_STATUS(nfserr); |
67 | } | 74 | } |
68 | 75 | ||