} 
static int usb_stor_scan_thread(void * __us){	struct us_data *us = (struct us_data *)__us;	/*	 * This thread doesn't need any user-level access,	 * so get rid of all our resources.	 */	lock_kernel();	daemonize("usb-stor-scan");	unlock_kernel();	/* Acquire a reference to the host, so it won't be deallocated	 * until we're ready to exit */	scsi_host_get(us_to_host(us));	/* Signal that we've started the thread */	complete(&(us->notify));	printk(KERN_DEBUG		"usb-storage: device found at %d\n", us->pusb_dev->devnum);	/* Wait for the timeout to expire or for a disconnect */	if (delay_use > 0) {		printk(KERN_DEBUG "usb-storage: waiting for device "				"to settle before scanning\n");retry:		wait_event_interruptible_timeout(us->delay_wait,				test_bit(US_FLIDX_DISCONNECTING, &us->flags),				delay_use * HZ);		if (current->flags & PF_FREEZE) {			refrigerator(PF_FREEZE);			goto retry;		}	}	/* If the device is still connected, perform the scanning */	if (!test_bit(US_FLIDX_DISCONNECTING, &us->flags)) {		scsi_scan_host(us_to_host(us));		printk(KERN_DEBUG "usb-storage: device scan complete\n");		/* Should we unbind if no devices were detected? */	}	scsi_host_put(us_to_host(us));	complete_and_exit(&threads_gone, 0);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/3e1d1d28d99dabe63c64f7f40f1ca1d646de1f73/usb.c/clean/drivers/usb/storage/usb.c