diff options
Diffstat (limited to 'fs/nfsd/nfs4proc.c')
-rw-r--r-- | fs/nfsd/nfs4proc.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/fs/nfsd/nfs4proc.c b/fs/nfsd/nfs4proc.c index 4cba7865f496..de1ff1d98bb1 100644 --- a/fs/nfsd/nfs4proc.c +++ b/fs/nfsd/nfs4proc.c | |||
@@ -864,12 +864,10 @@ static __be32 | |||
864 | nfsd4_secinfo(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, | 864 | nfsd4_secinfo(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, |
865 | struct nfsd4_secinfo *secinfo) | 865 | struct nfsd4_secinfo *secinfo) |
866 | { | 866 | { |
867 | struct svc_fh resfh; | ||
868 | struct svc_export *exp; | 867 | struct svc_export *exp; |
869 | struct dentry *dentry; | 868 | struct dentry *dentry; |
870 | __be32 err; | 869 | __be32 err; |
871 | 870 | ||
872 | fh_init(&resfh, NFS4_FHSIZE); | ||
873 | err = fh_verify(rqstp, &cstate->current_fh, S_IFDIR, NFSD_MAY_EXEC); | 871 | err = fh_verify(rqstp, &cstate->current_fh, S_IFDIR, NFSD_MAY_EXEC); |
874 | if (err) | 872 | if (err) |
875 | return err; | 873 | return err; |
@@ -878,6 +876,7 @@ nfsd4_secinfo(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, | |||
878 | &exp, &dentry); | 876 | &exp, &dentry); |
879 | if (err) | 877 | if (err) |
880 | return err; | 878 | return err; |
879 | fh_unlock(&cstate->current_fh); | ||
881 | if (d_really_is_negative(dentry)) { | 880 | if (d_really_is_negative(dentry)) { |
882 | exp_put(exp); | 881 | exp_put(exp); |
883 | err = nfserr_noent; | 882 | err = nfserr_noent; |
@@ -1269,8 +1268,10 @@ nfsd4_getdeviceinfo(struct svc_rqst *rqstp, | |||
1269 | goto out; | 1268 | goto out; |
1270 | 1269 | ||
1271 | nfserr = nfs_ok; | 1270 | nfserr = nfs_ok; |
1272 | if (gdp->gd_maxcount != 0) | 1271 | if (gdp->gd_maxcount != 0) { |
1273 | nfserr = ops->proc_getdeviceinfo(exp->ex_path.mnt->mnt_sb, gdp); | 1272 | nfserr = ops->proc_getdeviceinfo(exp->ex_path.mnt->mnt_sb, |
1273 | cstate->session->se_client, gdp); | ||
1274 | } | ||
1274 | 1275 | ||
1275 | gdp->gd_notify_types &= ops->notify_types; | 1276 | gdp->gd_notify_types &= ops->notify_types; |
1276 | out: | 1277 | out: |