|
@@ -232,6 +232,7 @@ fh_verify(struct svc_rqst *rqstp, struct svc_fh *fhp, int type, int access)
|
|
|
fhp->fh_dentry = dentry;
|
|
|
fhp->fh_export = exp;
|
|
|
nfsd_nr_verified++;
|
|
|
+ cache_get(&exp->h);
|
|
|
} else {
|
|
|
/*
|
|
|
* just rechecking permissions
|
|
@@ -241,6 +242,7 @@ fh_verify(struct svc_rqst *rqstp, struct svc_fh *fhp, int type, int access)
|
|
|
dprintk("nfsd: fh_verify - just checking\n");
|
|
|
dentry = fhp->fh_dentry;
|
|
|
exp = fhp->fh_export;
|
|
|
+ cache_get(&exp->h);
|
|
|
/*
|
|
|
* Set user creds for this exportpoint; necessary even
|
|
|
* in the "just checking" case because this may be a
|
|
@@ -252,8 +254,6 @@ fh_verify(struct svc_rqst *rqstp, struct svc_fh *fhp, int type, int access)
|
|
|
if (error)
|
|
|
goto out;
|
|
|
}
|
|
|
- cache_get(&exp->h);
|
|
|
-
|
|
|
|
|
|
error = nfsd_mode_check(rqstp, dentry->d_inode->i_mode, type);
|
|
|
if (error)
|