|
@@ -266,10 +266,6 @@ do_open_fhandle(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nfsd4_
|
|
{
|
|
{
|
|
__be32 status;
|
|
__be32 status;
|
|
|
|
|
|
- /* Only reclaims from previously confirmed clients are valid */
|
|
|
|
- if ((status = nfs4_check_open_reclaim(&open->op_clientid)))
|
|
|
|
- return status;
|
|
|
|
-
|
|
|
|
/* We don't know the target directory, and therefore can not
|
|
/* We don't know the target directory, and therefore can not
|
|
* set the change info
|
|
* set the change info
|
|
*/
|
|
*/
|
|
@@ -373,6 +369,9 @@ nfsd4_open(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
|
|
break;
|
|
break;
|
|
case NFS4_OPEN_CLAIM_PREVIOUS:
|
|
case NFS4_OPEN_CLAIM_PREVIOUS:
|
|
open->op_openowner->oo_flags |= NFS4_OO_CONFIRMED;
|
|
open->op_openowner->oo_flags |= NFS4_OO_CONFIRMED;
|
|
|
|
+ status = nfs4_check_open_reclaim(&open->op_clientid);
|
|
|
|
+ if (status)
|
|
|
|
+ goto out;
|
|
case NFS4_OPEN_CLAIM_FH:
|
|
case NFS4_OPEN_CLAIM_FH:
|
|
case NFS4_OPEN_CLAIM_DELEG_CUR_FH:
|
|
case NFS4_OPEN_CLAIM_DELEG_CUR_FH:
|
|
status = do_open_fhandle(rqstp, &cstate->current_fh,
|
|
status = do_open_fhandle(rqstp, &cstate->current_fh,
|