void scsi_device_dev_release(struct device *dev) 
static void scsi_device_dev_release(struct device *dev) 
void scsi_device_dev_release(struct device *dev){	struct scsi_device *sdev;	struct device *parent;	struct scsi_target *starget;	unsigned long flags;	parent = dev->parent;	sdev = to_scsi_device(dev);	starget = to_scsi_target(parent);	spin_lock_irqsave(sdev->host->host_lock, flags);	starget->reap_ref++;	list_del(&sdev->siblings);	list_del(&sdev->same_target_siblings);	list_del(&sdev->starved_entry);	spin_unlock_irqrestore(sdev->host->host_lock, flags);	if (sdev->request_queue) {		sdev->request_queue->queuedata = NULL;		scsi_free_queue(sdev->request_queue);		/* temporary expedient, try to catch use of queue lock		 * after free of sdev */		sdev->request_queue = NULL;	}	scsi_target_reap(scsi_target(sdev));	kfree(sdev->inquiry);	kfree(sdev);	if (parent)		put_device(parent);}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/52c1da39534fb382c061de58b65f678ad74b59f5/scsi_sysfs.c/buggy/drivers/scsi/scsi_sysfs.c