X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=drivers%2Fscsi%2Fhosts.c;h=8d8cc698b5693d3a2dca256d0f6cacf53e3aa99a;hb=6367666f534ee8fa9c6a7b667f38b5e445f85918;hp=6b2fd2e704c0669eb1c78c1c1ed1d20a46f60818;hpb=8d40237c730b8be87c1b80a5d96b9c603fefa829;p=linux-2.6.git diff --git a/drivers/scsi/hosts.c b/drivers/scsi/hosts.c index 6b2fd2e70..8d8cc698b 100644 --- a/drivers/scsi/hosts.c +++ b/drivers/scsi/hosts.c @@ -79,6 +79,8 @@ void scsi_remove_host(struct Scsi_Host *shost) set_bit(SHOST_DEL, &shost->shost_state); + if (shost->transportt->host_destroy) + shost->transportt->host_destroy(shost); class_device_unregister(&shost->shost_classdev); if (shost->transport_classdev.class) class_device_unregister(&shost->transport_classdev); @@ -133,11 +135,14 @@ int scsi_add_host(struct Scsi_Host *shost, struct device *dev) error = scsi_sysfs_add_host(shost); if (error) - goto out_del_classdev; + goto out_destroy_host; scsi_proc_host_add(shost); return error; + out_destroy_host: + if (shost->transportt->host_destroy) + shost->transportt->host_destroy(shost); out_del_classdev: class_device_del(&shost->shost_classdev); out_del_gendev: