aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/scsi_sysfs.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/scsi_sysfs.c')
-rw-r--r--drivers/scsi/scsi_sysfs.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/scsi/scsi_sysfs.c b/drivers/scsi/scsi_sysfs.c
index 9c52ce4f7129..8dc1f00aa5e8 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 }