scsi_host_set_state(shost, SHOST_RUNNING); 
spin_lock_irqsave(shost->host_lock, flags); if (scsi_host_set_state(shost, SHOST_RUNNING)) if (scsi_host_set_state(shost, SHOST_CANCEL)) BUG_ON(scsi_host_set_state(shost, SHOST_DEL)); spin_unlock_irqrestore(shost->host_lock, flags); 
static void scsi_restart_operations(struct Scsi_Host *shost){	struct scsi_device *sdev;	/*	 * If the door was locked, we need to insert a door lock request	 * onto the head of the SCSI request queue for the device.  There	 * is no point trying to lock the door of an off-line device.	 */	shost_for_each_device(sdev, shost) {		if (scsi_device_online(sdev) && sdev->locked)			scsi_eh_lock_door(sdev);	}	/*	 * next free up anything directly waiting upon the host.  this	 * will be requests for character device operations, and also for	 * ioctls to queued block devices.	 */	SCSI_LOG_ERROR_RECOVERY(3, printk("%s: waking up host to restart\n",					  __FUNCTION__));	scsi_host_set_state(shost, SHOST_RUNNING);	wake_up(&shost->host_wait);	/*	 * finally we need to re-initiate requests that may be pending.  we will	 * have had everything blocked while error handling is taking place, and	 * now that error recovery is done, we will need to ensure that these	 * requests are started.	 */	scsi_run_host_queues(shost);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/939647ee308e0ad924e776657704c7bedd498664/scsi_error.c/clean/drivers/scsi/scsi_error.c