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 | ||
