According to FCP-3, 12.5, we should use 2 times R_A_TOV_els as the time out value for the fcp abort exchange time out. This way, when the abort itself is timed out, e.g., the abort frame gets lost on the wire, the exch layer would indicate to fcp that we have a FC_EX_TIMEOUT.
Signed-off-by: Yi Zou <[email protected]> --- drivers/scsi/libfc/fc_fcp.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff --git a/drivers/scsi/libfc/fc_fcp.c b/drivers/scsi/libfc/fc_fcp.c index 651447f..2159ec1 100644 --- a/drivers/scsi/libfc/fc_fcp.c +++ b/drivers/scsi/libfc/fc_fcp.c @@ -266,7 +266,7 @@ static int fc_fcp_send_abort(struct fc_fcp_pkt *fsp) return 0; fsp->state |= FC_SRB_ABORT_PENDING; - return fsp->lp->tt.seq_exch_abort(fsp->seq_ptr, 0); + return fsp->lp->tt.seq_exch_abort(fsp->seq_ptr, 2 * fsp->lp->r_a_tov); } /** @@ -1171,7 +1171,7 @@ static void fc_fcp_error(struct fc_fcp_pkt *fsp, struct fc_frame *fp) if (fc_fcp_lock_pkt(fsp)) return; - if (error == -FC_EX_CLOSED) { + if ((error == -FC_EX_CLOSED) || (error == -FC_EX_TIMEOUT)) { fc_fcp_retry_cmd(fsp); goto unlock; } _______________________________________________ devel mailing list [email protected] http://www.open-fcoe.org/mailman/listinfo/devel
