upgrade to linux 2.6.10-1.12_FC2
[linux-2.6.git] / drivers / scsi / scsi_sysfs.c
index 961724e..79e47aa 100644 (file)
@@ -169,10 +169,7 @@ void scsi_device_dev_release(struct device *dev)
 
        if (delete) {
                struct scsi_target *starget = to_scsi_target(parent);
-               struct Scsi_Host *shost = dev_to_shost(starget->dev.parent);
                if (!starget->create) {
-                       if (shost->transportt->target_destroy)
-                               shost->transportt->target_destroy(starget);
                        device_del(parent);
                        if (starget->transport_classdev.class)
                                class_device_unregister(&starget->transport_classdev);
@@ -198,6 +195,8 @@ struct class sdev_class = {
 static int scsi_bus_match(struct device *dev, struct device_driver *gendrv)
 {
        struct scsi_device *sdp = to_scsi_device(dev);
+       if (sdp->no_uld_attach)
+               return 0;
        return (sdp->inq_periph_qual == SCSI_INQ_PQ_CON)? 1: 0;
 }
 
@@ -602,8 +601,6 @@ void scsi_remove_device(struct scsi_device *sdev)
        scsi_device_set_state(sdev, SDEV_DEL);
        if (sdev->host->hostt->slave_destroy)
                sdev->host->hostt->slave_destroy(sdev);
-       if (sdev->host->transportt->device_destroy)
-               sdev->host->transportt->device_destroy(sdev);
        put_device(&sdev->sdev_gendev);
 
 out: