[SCSI] fc-transport: Close state transition-window during rport deletion.
authorAndrew Vasquez <andrew.vasquez@qlogic.com>
Wed, 29 Apr 2009 18:12:39 +0000 (13:12 -0500)
committerJames Bottomley <James.Bottomley@HansenPartnership.com>
Fri, 15 May 2009 16:16:46 +0000 (12:16 -0400)
commit9a1a69a1f41cbefebf3172761f197db6aba71e68
tree65a2a8fc525e66c50654b30602a8a43826827e36
parentc53a284f8be23735dc6b53929640a987055f2933
[SCSI] fc-transport: Close state transition-window during rport deletion.

Andrew Vasquez wrote:
> fc-transport: Close state transition-window during rport deletion.
>
> After an rport's state has transitioned to FC_PORTSTATE_BLOCKED,
> but, prior to making the upcall to 'block' the scsi-target
> associated with an rport, queued commands can recycle and
> ultimately run out of retries causing failures to propagate to
> upper-level drivers.  Close this transition-window by returning
> the non-'retries' modifying DID_IMM_RETRY status for submitted
> I/Os.

The same can happen for iscsi when transitioning from logged in
to failed and blocking the sdevs.

This patch converts iscsi and fc's transitions back to use DID_IMM_RETRY
instead of DID_TRANSPORT_DISRUPTED which has a limited number of retries
that we do not want to use for handling this race.

Signed-off-by: Andrew Vasquez <andrew.vasquez@qlogic.com>
[Addition of iscsi and fc port online devloss case conversion by Mike Christie]
Signed-off-by: Mike Christie <michaelc@cs.wisc.edu>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
drivers/scsi/scsi_transport_iscsi.c
include/scsi/scsi_transport_fc.h