mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-11 09:17:52 +03:00
conf: hostdev: Introduce virDomainHostdevSubsysSCSIClear
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@redhat.com>
This commit is contained in:
parent
83836d57c1
commit
428e71bd53
@ -2303,6 +2303,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)
|
||||
@ -2336,17 +2347,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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user