status = nfs_ok;
        renew_client(sop->so_client);
 out:
-       if (status && open->op_claim_type == NFS4_OPEN_CLAIM_PREVIOUS)
-               status = nfserr_reclaim_bad;
        return status;
 }
 
 
 /* decrement seqid on successful reclaim, it will be bumped in encode_open */
 static void
-nfs4_set_claim_prev(struct nfsd4_open *open, int *status)
+nfs4_set_claim_prev(struct nfsd4_open *open)
 {
-       if (open->op_claim_type == NFS4_OPEN_CLAIM_PREVIOUS) {
-               if (*status)
-                       *status = nfserr_reclaim_bad;
-               else {
-                       open->op_stateowner->so_confirmed = 1;
-                       open->op_stateowner->so_client->cl_firststate = 1;
-                       open->op_stateowner->so_seqid--;
-               }
-       }
+       open->op_stateowner->so_confirmed = 1;
+       open->op_stateowner->so_client->cl_firststate = 1;
+       open->op_stateowner->so_seqid--;
 }
 
 /*
 out:
        if (fp)
                put_nfs4_file(fp);
-       /* CLAIM_PREVIOUS has different error returns */
-       nfs4_set_claim_prev(open, &status);
+       if (status == 0 && open->op_claim_type == NFS4_OPEN_CLAIM_PREVIOUS)
+               nfs4_set_claim_prev(open);
        /*
        * To finish the open response, we just need to set the rflags.
        */
                                        CHECK_FH | OPEN_STATE,
                                        &open_sop, &open_stp,
                                        &lock->v.new.clientid);
-               if (status) {
-                       if (lock->lk_reclaim)
-                               status = nfserr_reclaim_bad;
+               if (status)
                        goto out;
-               }
                /* create lockowner and lock stateid */
                fp = open_stp->st_file;
                strhashval = lock_ownerstr_hashval(fp->fi_inode,