scsi_remove_device(sdev); 
__scsi_remove_device(sdev); 
int scsi_sysfs_add_sdev(struct scsi_device *sdev){	int error, i;	if ((error = scsi_device_set_state(sdev, SDEV_RUNNING)) != 0)		return error;	error = device_add(&sdev->sdev_gendev);	if (error) {		put_device(sdev->sdev_gendev.parent);		printk(KERN_INFO "error 1\n");		return error;	}	error = class_device_add(&sdev->sdev_classdev);	if (error) {		printk(KERN_INFO "error 2\n");		goto clean_device;	}	/* take a reference for the sdev_classdev; this is	 * released by the sdev_class .release */	get_device(&sdev->sdev_gendev);	if (sdev->host->hostt->sdev_attrs) {		for (i = 0; sdev->host->hostt->sdev_attrs[i]; i++) {			error = attr_add(&sdev->sdev_gendev,					sdev->host->hostt->sdev_attrs[i]);			if (error) {				scsi_remove_device(sdev);				goto out;			}		}	}		for (i = 0; scsi_sysfs_sdev_attrs[i]; i++) {		if (!attr_overridden(sdev->host->hostt->sdev_attrs,					scsi_sysfs_sdev_attrs[i])) {			struct device_attribute * attr = 				attr_changed_internally(sdev->host, 							scsi_sysfs_sdev_attrs[i]);			error = device_create_file(&sdev->sdev_gendev, attr);			if (error) {				scsi_remove_device(sdev);				goto out;			}		}	}	transport_add_device(&sdev->sdev_gendev); out:	return error; clean_device:	scsi_device_set_state(sdev, SDEV_CANCEL);	device_del(&sdev->sdev_gendev);	transport_destroy_device(&sdev->sdev_gendev);	put_device(&sdev->sdev_gendev);	return error;}
4520	/local/tlutelli/issta_data/temp/c/2005_temp/2005/4520/903f4fed858a7b56b260cbd55d174fe54d188fb7/scsi_sysfs.c/clean/drivers/scsi/scsi_sysfs.c