scsi_scan.c : add missing interim SDEV_DEL state if slave_alloc fails
PATCH 1/1 scsi_scan.c : add missing interim SDEV_DEL state if slave_alloc fails
Reworked per James's suggestion
----
We were running i/o and performing a bunch of hba resets in a loop. This forces a lot of target removes and then rescans. Since the resets are occuring during scan it's causing the scan i/o to timeout, invoking error recovery, etc. We end up getting some nasty crashing in scsi_scan.c due to references to old sdevs that are failing but had some lingering references that kept them around.
Fix by setting device state to SDEV_DEL if the LLD's slave_alloc fails.
-- james s
Signed-off-by James Smart <[email protected]>
---
scsi_scan.c | 1 + 1 file changed, 1 insertion(+)
drivers/scsi/scsi_scan.c +1 -0
@@ -317,6 +317,7 @@ static struct scsi_device *scsi_alloc_sdreturn sdev; out_device_destroy: +scsi_device_set_state (sdev,SDEV_DEL );transport_destroy_device (&sdev->sdev_gendev);put_device (&sdev->sdev_gendev); out: