aboutsummaryrefslogtreecommitdiffstats
path: root/fs/nfsd/nfs4proc.c
diff options
context:
space:
mode:
Diffstat (limited to 'fs/nfsd/nfs4proc.c')
-rw-r--r--fs/nfsd/nfs4proc.c9
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
864nfsd4_secinfo(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate, 864nfsd4_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;
1276out: 1277out: