]> git.ipfire.org Git - people/arne_f/kernel.git/blobdiff - fs/nfsd/nfs4proc.c
Merge branch 'for-3.3' of git://linux-nfs.org/~bfields/linux
[people/arne_f/kernel.git] / fs / nfsd / nfs4proc.c
index c5e28ed8bca07a7fa4ab4e624cd05648d130cae2..896da74ec5634fd92739e0284f5d0768c8f12437 100644 (file)
@@ -266,10 +266,6 @@ do_open_fhandle(struct svc_rqst *rqstp, struct svc_fh *current_fh, struct nfsd4_
 {
        __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
        * set the change info
        */
@@ -373,6 +369,9 @@ nfsd4_open(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
                        break;
                case NFS4_OPEN_CLAIM_PREVIOUS:
                        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_DELEG_CUR_FH:
                        status = do_open_fhandle(rqstp, &cstate->current_fh,