diff options
Diffstat (limited to 'drivers/scsi/scsi_sysfs.c')
-rw-r--r-- | drivers/scsi/scsi_sysfs.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/scsi/scsi_sysfs.c b/drivers/scsi/scsi_sysfs.c index 9c52ce4f712..8dc1f00aa5e 100644 --- a/drivers/scsi/scsi_sysfs.c +++ b/drivers/scsi/scsi_sysfs.c | |||
@@ -966,10 +966,11 @@ static void __scsi_remove_target(struct scsi_target *starget) | |||
966 | list_for_each_entry(sdev, &shost->__devices, siblings) { | 966 | list_for_each_entry(sdev, &shost->__devices, siblings) { |
967 | if (sdev->channel != starget->channel || | 967 | if (sdev->channel != starget->channel || |
968 | sdev->id != starget->id || | 968 | sdev->id != starget->id || |
969 | sdev->sdev_state == SDEV_DEL) | 969 | scsi_device_get(sdev)) |
970 | continue; | 970 | continue; |
971 | spin_unlock_irqrestore(shost->host_lock, flags); | 971 | spin_unlock_irqrestore(shost->host_lock, flags); |
972 | scsi_remove_device(sdev); | 972 | scsi_remove_device(sdev); |
973 | scsi_device_put(sdev); | ||
973 | spin_lock_irqsave(shost->host_lock, flags); | 974 | spin_lock_irqsave(shost->host_lock, flags); |
974 | goto restart; | 975 | goto restart; |
975 | } | 976 | } |