From 8be475bcba279eb6095c86ffd8aee9eaeb720e6b Mon Sep 17 00:00:00 2001 From: Alan Stern Date: Thu, 18 Mar 2010 15:39:30 -0400 Subject: [PATCH] --- yaml --- r: 198987 b: refs/heads/master c: f9e8894ae5157796dd69249c56062042d02a431d h: refs/heads/master i: 198985: 55b7ff659b6e3e8279d8228861901cf33b42a77e 198983: 47adc368845399ff73b31e4c54905daa7427c7c8 v: v3 --- [refs] | 2 +- trunk/drivers/scsi/scsi_scan.c | 9 +++++---- 2 files changed, 6 insertions(+), 5 deletions(-) diff --git a/[refs] b/[refs] index a2f476c74814..05371bab7bda 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 8a52da632ceb9d8b776494563df579e87b7b586b +refs/heads/master: f9e8894ae5157796dd69249c56062042d02a431d diff --git a/trunk/drivers/scsi/scsi_scan.c b/trunk/drivers/scsi/scsi_scan.c index c992ecf4e372..a77468cd5a33 100644 --- a/trunk/drivers/scsi/scsi_scan.c +++ b/trunk/drivers/scsi/scsi_scan.c @@ -492,19 +492,20 @@ void scsi_target_reap(struct scsi_target *starget) struct Scsi_Host *shost = dev_to_shost(starget->dev.parent); unsigned long flags; enum scsi_target_state state; - int empty; + int empty = 0; spin_lock_irqsave(shost->host_lock, flags); state = starget->state; - empty = --starget->reap_ref == 0 && - list_empty(&starget->devices) ? 1 : 0; + if (--starget->reap_ref == 0 && list_empty(&starget->devices)) { + empty = 1; + starget->state = STARGET_DEL; + } spin_unlock_irqrestore(shost->host_lock, flags); if (!empty) return; BUG_ON(state == STARGET_DEL); - starget->state = STARGET_DEL; if (state == STARGET_CREATED) scsi_target_destroy(starget); else