scsi: move target_destroy call
PATCH 1/1 scsi: move target_destroy call
This patch moves the calling of target_destroy next to the list_del. This closed a race being seen while doing a device add on the aic7xxx.
Signed-off-by Mike Anderson <[email protected]>
drivers/scsi/scsi_scan.c | 5 ++--- 1 files changed, 2 insertions(+), 3 deletions(-)
drivers/scsi/scsi_scan.c +2 -3
@@ -288,10 +288,7 @@ static void scsi_target_dev_release(stru {struct device *parent = dev->parent;struct scsi_target *starget =to_scsi_target (dev); -struct Scsi_Host *shost =dev_to_shost (parent); -if (shost->hostt->target_destroy) - shost->hostt->target_destroy (starget);kfree (starget);put_device (parent); }
@@ -416,6 +413,8 @@ static void scsi_target_reap_usercontextdevice_del (&starget->dev);transport_destroy_device (&starget->dev);spin_lock_irqsave (shost->host_lock, flags); +if (shost->hostt->target_destroy) + shost->hostt->target_destroy (starget);list_del_init (&starget->siblings);spin_unlock_irqrestore (shost->host_lock, flags);put_device (&starget->dev);