|
@@ -953,14 +953,14 @@ nfsd4_write(struct svc_rqst *rqstp, struct nfsd4_compound_state *cstate,
|
|
nfs4_lock_state();
|
|
nfs4_lock_state();
|
|
status = nfs4_preprocess_stateid_op(SVC_NET(rqstp),
|
|
status = nfs4_preprocess_stateid_op(SVC_NET(rqstp),
|
|
cstate, stateid, WR_STATE, &filp);
|
|
cstate, stateid, WR_STATE, &filp);
|
|
- if (filp)
|
|
|
|
- get_file(filp);
|
|
|
|
- nfs4_unlock_state();
|
|
|
|
-
|
|
|
|
if (status) {
|
|
if (status) {
|
|
|
|
+ nfs4_unlock_state();
|
|
dprintk("NFSD: nfsd4_write: couldn't process stateid!\n");
|
|
dprintk("NFSD: nfsd4_write: couldn't process stateid!\n");
|
|
return status;
|
|
return status;
|
|
}
|
|
}
|
|
|
|
+ if (filp)
|
|
|
|
+ get_file(filp);
|
|
|
|
+ nfs4_unlock_state();
|
|
|
|
|
|
cnt = write->wr_buflen;
|
|
cnt = write->wr_buflen;
|
|
write->wr_how_written = write->wr_stable_how;
|
|
write->wr_how_written = write->wr_stable_how;
|