linux/drivers/message/fusion
Kashyap, Desai c9de7dc483 [SCSI] mptfusion: Block Error handling for deleting devices or Device in DMD
Issue description:
In multipath topology, when device deletion is in transient state,
multipath driver can call blk_flush_queue() as part of path failure.
Before device get deleted from OS, Device may go OFFLINE as part of error
handling kicked off triggered from multipathing driver. Above condition hits
more frequently if device missing delay timer (which is LSI specific firmware
parameter) is non zero value.

root cause of this issue is Error handling thread is getting kicked off for
device which is not really present(in transient state of deleting).

This patch has solution for this issue. driver is now using eh_timed_out
callback. See below.

mptsas_transport_template->eh_timed_out = mptsas_eh_timed_out

Using mptsas_eh_timed_out function, driver can decide weather vdevice is
under Device missing delay or deleting state.

for either of those cases, there is BLK_EH_RESET_TIMER return to scsi mid
and error handling thread will not be kicked off for that particular scsi
command.

Signed-off-by: Kashyap Desai <kashyap.desai@lsi.com>
Cc: Stable Tree <stable@kernel.org>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
2010-07-28 09:07:46 -05:00
..
lsi trivial: Miscellaneous documentation typo fixes 2009-06-12 18:01:47 +02:00
Kconfig [SCSI] mpt fusion: Kconfig cleanup 2007-10-12 14:48:53 -04:00
Makefile [SCSI] mpt fusion: logging support in Kconfig, Makefile, mptbase.h and addition of mptdebug.h 2007-07-28 11:25:35 -04:00
mptbase.c [SCSI] mptfusion: print Doorbell register in a case of hard reset and timeout 2010-07-27 12:03:52 -05:00
mptbase.h [SCSI] mptfusion: Block Error handling for deleting devices or Device in DMD 2010-07-28 09:07:46 -05:00
mptctl.c [SCSI] mptfusion: print Doorbell register in a case of hard reset and timeout 2010-07-27 12:03:52 -05:00
mptctl.h [SCSI] mpt fusion : Updated copyright statment with 2008 included 2008-06-05 09:27:17 -05:00
mptdebug.h [SCSI] mpt fusion: Fixing 1078 data corruption issue for 36GB memory region 2009-06-09 17:21:31 -05:00
mptfc.c [SCSI] mptfusion: sanity check for vdevice pointer is added 2010-04-11 09:24:10 -05:00
mptlan.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
mptlan.h mptlan: Kill directly reference of netdev->priv 2008-12-03 21:13:37 -08:00
mptsas.c [SCSI] mptfusion: Block Error handling for deleting devices or Device in DMD 2010-07-28 09:07:46 -05:00
mptsas.h [SCSI] mptfusion: Added sanity to check B_T mapping for device before adding to OS 2010-07-27 12:02:32 -05:00
mptscsih.c [SCSI] mptfusion: Block Error handling for deleting devices or Device in DMD 2010-07-28 09:07:46 -05:00
mptscsih.h [SCSI] modify change_queue_depth to take in reason why it is being called 2009-12-04 12:00:41 -06:00
mptspi.c [SCSI] mptfusion: Setting period,offset and width for SPI driver 2010-04-11 09:24:09 -05:00