qemu_domain: Move internals of qemuDomainPrepareHostdev() into a separate function

So far, qemuDomainPrepareHostdev() is a NOP for anything but a
SCSI hostdev. This will change soon. Therefore, move the SCSI
hostdev preparation into a separate function
(qemuDomainPrepareHostdevSCSI()) and make
qemuDomainPrepareHostdev() call function corresponding to the
hostdev type (or nothing if the type doesn't need any
preparation).

Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
Reviewed-by: Martin Kletzander <mkletzan@redhat.com>
This commit is contained in:
Michal Privoznik 2023-04-24 10:51:52 +02:00
parent 3f7039f9e8
commit 6e60e8cb9f

View File

@ -11239,11 +11239,10 @@ qemuDomainPrepareDiskSource(virDomainDiskDef *disk,
}
int
qemuDomainPrepareHostdev(virDomainHostdevDef *hostdev,
static int
qemuDomainPrepareHostdevSCSI(virDomainHostdevDef *hostdev,
qemuDomainObjPrivate *priv)
{
if (virHostdevIsSCSIDevice(hostdev)) {
virDomainHostdevSubsysSCSI *scsisrc = &hostdev->source.subsys.u.scsi;
virStorageSource *src = NULL;
@ -11288,6 +11287,27 @@ qemuDomainPrepareHostdev(virDomainHostdevDef *hostdev,
return -1;
}
}
return 0;
}
int
qemuDomainPrepareHostdev(virDomainHostdevDef *hostdev,
qemuDomainObjPrivate *priv)
{
if (hostdev->mode != VIR_DOMAIN_HOSTDEV_MODE_SUBSYS)
return 0;
switch ((virDomainHostdevSubsysType)hostdev->source.subsys.type) {
case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI:
return qemuDomainPrepareHostdevSCSI(hostdev, priv);
case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_USB:
case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_PCI:
case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_SCSI_HOST:
case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_MDEV:
case VIR_DOMAIN_HOSTDEV_SUBSYS_TYPE_LAST:
break;
}
return 0;