iscsisrc->auth = NULL;
}
+
+static void
+virDomainHostdevSubsysSCSIClear(virDomainHostdevSubsysSCSIPtr scsisrc)
+{
+ if (scsisrc->protocol == VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_ISCSI)
+ virDomainHostdevSubsysSCSIiSCSIClear(&scsisrc->u.iscsi);
+ else
+ VIR_FREE(scsisrc->u.host.adapter);
+}
+
+
void virDomainHostdevDefClear(virDomainHostdevDefPtr def)
{
if (!def)
}
break;
case VIR_DOMAIN_HOSTDEV_MODE_SUBSYS:
- if (def->source.subsys.type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI) {
- virDomainHostdevSubsysSCSIPtr scsisrc = &def->source.subsys.u.scsi;
- if (scsisrc->protocol ==
- VIR_DOMAIN_HOSTDEV_SCSI_PROTOCOL_TYPE_ISCSI) {
- virDomainHostdevSubsysSCSIiSCSIClear(&scsisrc->u.iscsi);
- } else {
- VIR_FREE(scsisrc->u.host.adapter);
- }
- } else if (def->source.subsys.type == VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI_HOST) {
- virDomainHostdevSubsysSCSIVHostPtr hostsrc = &def->source.subsys.u.scsi_host;
- VIR_FREE(hostsrc->wwpn);
+ switch ((virDomainHostdevSubsysType) def->source.subsys.type) {
+ case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI:
+ virDomainHostdevSubsysSCSIClear(&def->source.subsys.u.scsi);
+ break;
+ case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI_HOST:
+ VIR_FREE(def->source.subsys.u.scsi_host.wwpn);
+ break;
+ case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB:
+ case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI:
+ case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_LAST:
+ break;
}
break;
}