process_req_last_xid() returns ptlrpc_error() on error, which
actually returns 0 to caller mistankely.
Test-Parameters: envdefinitions=ONLY=failover_ost \
clientcount=4 osscount=2 mdscount=2 mdtcount=1 \
austeroptions=-R failover=true iscsi=1 \
testlist=recovery-mds-scale
Signed-off-by: Niu Yawei <yawei.niu@intel.com>
Change-Id: I136a8ef153a3ea08dcbf05e11fb412e31947be20
Reviewed-on: http://review.whamcloud.com/18245
Tested-by: Jenkins
Tested-by: Maloo <hpdd-maloo@intel.com>
Reviewed-by: Andreas Dilger <andreas.dilger@intel.com>
Reviewed-by: Alex Zhuravlev <alexey.zhuravlev@intel.com>
Reviewed-by: Oleg Drokin <oleg.drokin@intel.com>
* exp_last_xid on server;
* - The former RPC got chance to be processed;
*/
- if (!(lustre_msg_get_flags(req->rq_reqmsg) & MSG_REPLAY)) {
- req->rq_status = -EPROTO;
- RETURN(ptlrpc_error(req));
- }
+ if (!(lustre_msg_get_flags(req->rq_reqmsg) & MSG_REPLAY))
+ RETURN(-EPROTO);
}
/* try to release in-memory reply data */
} else if (obd->obd_recovery_data.trd_processing_task !=
current_pid()) {
rc = process_req_last_xid(req);
- if (rc)
+ if (rc) {
+ req->rq_status = rc;
+ rc = ptlrpc_error(req);
GOTO(out, rc);
+ }
}
request_fail_id = tgt->lut_request_fail_id;