diff options
author | Mike Christie <michaelc@cs.wisc.edu> | 2008-08-19 19:45:27 -0400 |
---|---|---|
committer | James Bottomley <James.Bottomley@HansenPartnership.com> | 2008-10-13 09:28:49 -0400 |
commit | f46e307da925a7b71a0018c0510cdc6e588b87fc (patch) | |
tree | 7bb9e8af0c33ed8fef53ea98e6ceceff7f9f3528 /include/scsi | |
parent | 56d7fcfa815564b40a1b0ec7a30ea8cb3bc0713e (diff) |
[SCSI] fc class: Add support for new transport errors
If the target is blocked and fast io fail tmo has not fired
then we requeue with DID_TRANSPORT_DISRUPTED. Once that
tmo fires we fail with DID_TRANSPORT_FAILFAST.
v2
- seperate from
"fc class: unblock target after calling terminate callback"
to make it easier to review.
- Add JamesS's ack from list.
v2
- initial patch
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
Acked-by: James Smart <James.Smart@emulex.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Diffstat (limited to 'include/scsi')
-rw-r--r-- | include/scsi/scsi_transport_fc.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/include/scsi/scsi_transport_fc.h b/include/scsi/scsi_transport_fc.h index fb8d0137066..49d8913c4f8 100644 --- a/include/scsi/scsi_transport_fc.h +++ b/include/scsi/scsi_transport_fc.h | |||
@@ -679,15 +679,15 @@ fc_remote_port_chkready(struct fc_rport *rport) | |||
679 | if (rport->roles & FC_PORT_ROLE_FCP_TARGET) | 679 | if (rport->roles & FC_PORT_ROLE_FCP_TARGET) |
680 | result = 0; | 680 | result = 0; |
681 | else if (rport->flags & FC_RPORT_DEVLOSS_PENDING) | 681 | else if (rport->flags & FC_RPORT_DEVLOSS_PENDING) |
682 | result = DID_IMM_RETRY << 16; | 682 | result = DID_TRANSPORT_DISRUPTED << 16; |
683 | else | 683 | else |
684 | result = DID_NO_CONNECT << 16; | 684 | result = DID_NO_CONNECT << 16; |
685 | break; | 685 | break; |
686 | case FC_PORTSTATE_BLOCKED: | 686 | case FC_PORTSTATE_BLOCKED: |
687 | if (rport->flags & FC_RPORT_FAST_FAIL_TIMEDOUT) | 687 | if (rport->flags & FC_RPORT_FAST_FAIL_TIMEDOUT) |
688 | result = DID_NO_CONNECT << 16; | 688 | result = DID_TRANSPORT_FAILFAST << 16; |
689 | else | 689 | else |
690 | result = DID_IMM_RETRY << 16; | 690 | result = DID_TRANSPORT_DISRUPTED << 16; |
691 | break; | 691 | break; |
692 | default: | 692 | default: |
693 | result = DID_NO_CONNECT << 16; | 693 | result = DID_NO_CONNECT << 16; |