diff options
Diffstat (limited to 'kernel/drivers/scsi/scsi_scan.c')
-rw-r--r-- | kernel/drivers/scsi/scsi_scan.c | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/kernel/drivers/scsi/scsi_scan.c b/kernel/drivers/scsi/scsi_scan.c index 054923e33..692445bcc 100644 --- a/kernel/drivers/scsi/scsi_scan.c +++ b/kernel/drivers/scsi/scsi_scan.c @@ -314,6 +314,7 @@ static void scsi_target_destroy(struct scsi_target *starget) struct Scsi_Host *shost = dev_to_shost(dev->parent); unsigned long flags; + BUG_ON(starget->state == STARGET_DEL); starget->state = STARGET_DEL; transport_destroy_device(dev); spin_lock_irqsave(shost->host_lock, flags); @@ -1458,12 +1459,12 @@ retry: out_err: kfree(lun_data); out: - scsi_device_put(sdev); if (scsi_device_created(sdev)) /* * the sdev we used didn't appear in the report luns scan */ __scsi_remove_device(sdev); + scsi_device_put(sdev); return ret; } |