scsi_remove_target(&starget->dev); spin_lock_irqsave(shost->host_lock, flags); 
__scsi_remove_device(sdev); goto restart; 
void scsi_forget_host(struct Scsi_Host *shost){	struct scsi_target *starget, *tmp;	unsigned long flags;	/*	 * Ok, this look a bit strange.  We always look for the first device	 * on the list as scsi_remove_device removes them from it - thus we	 * also have to release the lock.	 * We don't need to get another reference to the device before	 * releasing the lock as we already own the reference from	 * scsi_register_device that's release in scsi_remove_device.  And	 * after that we don't look at sdev anymore.	 */	spin_lock_irqsave(shost->host_lock, flags);	list_for_each_entry_safe(starget, tmp, &shost->__targets, siblings) {		spin_unlock_irqrestore(shost->host_lock, flags);		scsi_remove_target(&starget->dev);		spin_lock_irqsave(shost->host_lock, flags);	}	spin_unlock_irqrestore(shost->host_lock, flags);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/a64358db1253b35d508a411e80a3ad23b859ec88/scsi_scan.c/clean/drivers/scsi/scsi_scan.c