All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH 1/1]  fusion: fibre channel: return DID_ERROR for MPI_IOCSTATUS_SCSI_IOC_TERMINATED
@ 2006-12-20 23:11 Michael Reed
  0 siblings, 0 replies; only message in thread
From: Michael Reed @ 2006-12-20 23:11 UTC (permalink / raw)
  To: linux-scsi; +Cc: Moore, Eric Dean, Jeremy Higdon

[-- Attachment #1: Type: text/plain, Size: 305 bytes --]

The fibre channel IOC may kill a request for a variety of
reasons, some of which may be recovered by a retry, some of
which are unlikely to be recovered.  Return DID_ERROR
instead of DID_RESET to permit retry of the command,
just not an infinite number of them.

Signed-off-by: Michael Reed <mdr@sgi.com>

[-- Attachment #2: mptscsih.c.patch --]
[-- Type: text/x-patch, Size: 872 bytes --]

The fibre channel IOC may kill a request for a variety of
reasons, some of which may be recovered by a retry, some of
which are unlikely to be recovered.  Return DID_ERROR
instead of DID_RESET to permit retry of the command,
just not an infinite number of them.

Signed-off-by: Michael Reed <mdr@sgi.com>

--- kdbu/drivers/message/fusion/mptscsih.c	2006-08-04 02:10:22.000000000 -0500
+++ kdb/drivers/message/fusion/mptscsih.c	2006-12-16 12:54:13.952128107 -0600
@@ -702,9 +702,14 @@ mptscsih_io_done(MPT_ADAPTER *ioc, MPT_F
 					}
 				}
 			}
+			else if (ioc->bus_type == FC) {
+				/* i/o killed by IOC */
+				sc->result = DID_ERROR << 16;
+				break;
+			}
 
 			/*
-			 * Allow non-SAS & non-NEXUS_LOSS to drop into below code
+			 * Allow non-FC, non-SAS & non-NEXUS_LOSS to drop into below code
 			 */
 
 		case MPI_IOCSTATUS_SCSI_TASK_TERMINATED:	/* 0x0048 */

^ permalink raw reply	[flat|nested] only message in thread

only message in thread, other threads:[~2006-12-20 23:11 UTC | newest]

Thread overview: (only message) (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-12-20 23:11 [PATCH 1/1] fusion: fibre channel: return DID_ERROR for MPI_IOCSTATUS_SCSI_IOC_TERMINATED Michael Reed

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.