diff options
author | Eric Moore <eric.moore@lsil.com> | 2007-01-04 22:44:01 -0500 |
---|---|---|
committer | James Bottomley <jejb@mulgrave.il.steeleye.com> | 2007-01-06 10:22:33 -0500 |
commit | 86dd424266530cda55258b2b33d04c23a88b9a9c (patch) | |
tree | 7bc428fe171d67cd6252c0315f7dffbc84c73b1c /drivers/message | |
parent | 3d6d174a0888fe082e87ce1d4a0f1a85044a4515 (diff) |
[SCSI] fusion: fibre channel: return DID_ERROR for MPI_IOCSTATUS_SCSI_IOC_TERMINATED
A repost of a patch forwarded by Mikael Reed from 2006-12-20.
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>
Signed-off-by: Eric Moore <Eric.Moore@lsi.com>
Signed-off-by: James Bottomley <James.Bottomley@SteelEye.com>
Diffstat (limited to 'drivers/message')
-rw-r--r-- | drivers/message/fusion/mptscsih.c | 11 |
1 files changed, 11 insertions, 0 deletions
diff --git a/drivers/message/fusion/mptscsih.c b/drivers/message/fusion/mptscsih.c index 2c72c36b8171..076eb2b573a3 100644 --- a/drivers/message/fusion/mptscsih.c +++ b/drivers/message/fusion/mptscsih.c | |||
@@ -701,6 +701,17 @@ mptscsih_io_done(MPT_ADAPTER *ioc, MPT_FRAME_HDR *mf, MPT_FRAME_HDR *mr) | |||
701 | break; | 701 | break; |
702 | } | 702 | } |
703 | } | 703 | } |
704 | } else if (ioc->bus_type == FC) { | ||
705 | /* | ||
706 | * The FC IOC may kill a request for variety of | ||
707 | * reasons, some of which may be recovered by a | ||
708 | * retry, some which are unlikely to be | ||
709 | * recovered. Return DID_ERROR instead of | ||
710 | * DID_RESET to permit retry of the command, | ||
711 | * just not an infinite number of them | ||
712 | */ | ||
713 | sc->result = DID_ERROR << 16; | ||
714 | break; | ||
704 | } | 715 | } |
705 | 716 | ||
706 | /* | 717 | /* |