struct Scsi_Host *shost = sdev->host;  down(&shost->scan_mutex); if (scsi_device_set_state(sdev, SDEV_CANCEL) != 0) goto out;  class_device_unregister(&sdev->sdev_classdev); device_del(&sdev->sdev_gendev); scsi_device_set_state(sdev, SDEV_DEL); if (sdev->host->hostt->slave_destroy) sdev->host->hostt->slave_destroy(sdev); transport_unregister_device(&sdev->sdev_gendev); put_device(&sdev->sdev_gendev); out: up(&shost->scan_mutex); 
down(&sdev->host->scan_mutex); __scsi_remove_device(sdev); up(&sdev->host->scan_mutex); 
void scsi_remove_device(struct scsi_device *sdev){	struct Scsi_Host *shost = sdev->host;	down(&shost->scan_mutex);	if (scsi_device_set_state(sdev, SDEV_CANCEL) != 0)		goto out;	class_device_unregister(&sdev->sdev_classdev);	device_del(&sdev->sdev_gendev);	scsi_device_set_state(sdev, SDEV_DEL);	if (sdev->host->hostt->slave_destroy)		sdev->host->hostt->slave_destroy(sdev);	transport_unregister_device(&sdev->sdev_gendev);	put_device(&sdev->sdev_gendev);out:	up(&shost->scan_mutex);}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/903f4fed858a7b56b260cbd55d174fe54d188fb7/scsi_sysfs.c/clean/drivers/scsi/scsi_sysfs.c