mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
qemu_conf.c: introduce qemuAddRemoveSharedDeviceInternal
After the previous commits, qemuAddSharedDevice() and qemuRemoveSharedDevice() are now the same code with a different flag to call the internal functions. This patch aggregates the common code into a new function called qemuAddRemoveSharedDeviceInternal() to further reduce code repetition. Both qemuAddSharedDevice() and qemuRemoveSharedDevice() are kept since they are public functions used elsewhere. No functional change was made. Signed-off-by: Daniel Henrique Barboza <danielhb413@gmail.com> Reviewed-by: Pavel Hrdina <phrdina@redhat.com>
This commit is contained in:
parent
b80bb2d371
commit
807a6dd31a
@ -1802,6 +1802,26 @@ qemuAddRemoveSharedHostdevInternal(virQEMUDriverPtr driver,
|
|||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int
|
||||||
|
qemuAddRemoveSharedDeviceInternal(virQEMUDriverPtr driver,
|
||||||
|
virDomainDeviceDefPtr dev,
|
||||||
|
const char *name,
|
||||||
|
bool addDevice)
|
||||||
|
{
|
||||||
|
/* Currently the only conflicts we have to care about for
|
||||||
|
* the shared disk and shared host device is "sgio" setting,
|
||||||
|
* which is only valid for block disk and scsi host device.
|
||||||
|
*/
|
||||||
|
if (dev->type == VIR_DOMAIN_DEVICE_DISK)
|
||||||
|
return qemuAddRemoveSharedDiskInternal(driver, dev->data.disk,
|
||||||
|
name, addDevice);
|
||||||
|
else if (dev->type == VIR_DOMAIN_DEVICE_HOSTDEV)
|
||||||
|
return qemuAddRemoveSharedHostdevInternal(driver, dev->data.hostdev,
|
||||||
|
name, addDevice);
|
||||||
|
else
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
/* qemuAddSharedDevice:
|
/* qemuAddSharedDevice:
|
||||||
* @driver: Pointer to qemu driver struct
|
* @driver: Pointer to qemu driver struct
|
||||||
@ -1817,18 +1837,7 @@ qemuAddSharedDevice(virQEMUDriverPtr driver,
|
|||||||
virDomainDeviceDefPtr dev,
|
virDomainDeviceDefPtr dev,
|
||||||
const char *name)
|
const char *name)
|
||||||
{
|
{
|
||||||
/* Currently the only conflicts we have to care about for
|
return qemuAddRemoveSharedDeviceInternal(driver, dev, name, true);
|
||||||
* the shared disk and shared host device is "sgio" setting,
|
|
||||||
* which is only valid for block disk and scsi host device.
|
|
||||||
*/
|
|
||||||
if (dev->type == VIR_DOMAIN_DEVICE_DISK)
|
|
||||||
return qemuAddRemoveSharedDiskInternal(driver, dev->data.disk,
|
|
||||||
name, true);
|
|
||||||
else if (dev->type == VIR_DOMAIN_DEVICE_HOSTDEV)
|
|
||||||
return qemuAddRemoveSharedHostdevInternal(driver, dev->data.hostdev,
|
|
||||||
name, true);
|
|
||||||
else
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
@ -1855,14 +1864,7 @@ qemuRemoveSharedDevice(virQEMUDriverPtr driver,
|
|||||||
virDomainDeviceDefPtr dev,
|
virDomainDeviceDefPtr dev,
|
||||||
const char *name)
|
const char *name)
|
||||||
{
|
{
|
||||||
if (dev->type == VIR_DOMAIN_DEVICE_DISK)
|
return qemuAddRemoveSharedDeviceInternal(driver, dev, name, false);
|
||||||
return qemuAddRemoveSharedDiskInternal(driver, dev->data.disk,
|
|
||||||
name, false);
|
|
||||||
else if (dev->type == VIR_DOMAIN_DEVICE_HOSTDEV)
|
|
||||||
return qemuAddRemoveSharedHostdevInternal(driver, dev->data.hostdev,
|
|
||||||
name, false);
|
|
||||||
else
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user