Just a tiny wrapper over the SCSI def clearing logic to drop some
if-else branches from a switch, mainly because extending the switch in
the future would render the current code with branching less readable.
Signed-off-by: Erik Skultety <eskultet(a)redhat.com>
---
src/conf/domain_conf.c | 33 ++++++++++++++++++++++-----------
1 file changed, 22 insertions(+), 11 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 0b9e024600..ddd949703c 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -2301,6 +2301,17 @@
virDomainHostdevSubsysSCSIiSCSIClear(virDomainHostdevSubsysSCSIiSCSIPtr iscsisrc
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)
@@ -2334,17 +2345,17 @@ void virDomainHostdevDefClear(virDomainHostdevDefPtr 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;
}
--
2.12.0