> 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]>
The purpose of this patch was to have proper timeout for the fcp abort as
required by the spec. However, the existing fc_exch_timeout logic does not
seem to satisfy the need for it so when the abort itself gets lost, the xid
may get reused immediately, then we have a problem when frames w/ that xid
are still coming since abort never reaches target.
Rob, can you drop/revert this patch? I will submit a reworked patch later.
Thanks,
Yi
> ---
>
> 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
_______________________________________________
devel mailing list
[email protected]
http://www.open-fcoe.org/mailman/listinfo/devel