Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

[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>

authored by

Mike Christie and committed by
James Bottomley
f46e307d 56d7fcfa

+3 -3
+3 -3
include/scsi/scsi_transport_fc.h
··· 679 679 if (rport->roles & FC_PORT_ROLE_FCP_TARGET) 680 680 result = 0; 681 681 else if (rport->flags & FC_RPORT_DEVLOSS_PENDING) 682 - result = DID_IMM_RETRY << 16; 682 + result = DID_TRANSPORT_DISRUPTED << 16; 683 683 else 684 684 result = DID_NO_CONNECT << 16; 685 685 break; 686 686 case FC_PORTSTATE_BLOCKED: 687 687 if (rport->flags & FC_RPORT_FAST_FAIL_TIMEDOUT) 688 - result = DID_NO_CONNECT << 16; 688 + result = DID_TRANSPORT_FAILFAST << 16; 689 689 else 690 - result = DID_IMM_RETRY << 16; 690 + result = DID_TRANSPORT_DISRUPTED << 16; 691 691 break; 692 692 default: 693 693 result = DID_NO_CONNECT << 16;