mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-22 11:22:23 +00:00
qemu: command: Call qemuGetDriveSourceProps only if necessary
Add logic which will call qemuGetDriveSourceProps only in cases where we need the JSON representation. This will allow qemuGetDriveSourceProps to generate the JSON representation for all possible disk sources.
This commit is contained in:
parent
5f24220244
commit
f96e97737b
@ -1436,6 +1436,28 @@ qemuDiskBusNeedsDeviceArg(int bus)
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* qemuDiskSourceNeedsProps:
|
||||
* @src: disk source
|
||||
*
|
||||
* Returns true, if the disk source needs to be generated from the JSON
|
||||
* representation. Otherwise, the disk source should be represented using
|
||||
* the legacy representation.
|
||||
*/
|
||||
static bool
|
||||
qemuDiskSourceNeedsProps(virStorageSourcePtr src)
|
||||
{
|
||||
int actualType = virStorageSourceGetActualType(src);
|
||||
|
||||
if (actualType == VIR_STORAGE_TYPE_NETWORK &&
|
||||
src->protocol == VIR_STORAGE_NET_PROTOCOL_GLUSTER &&
|
||||
src->nhosts > 1)
|
||||
return true;
|
||||
|
||||
return false;
|
||||
}
|
||||
|
||||
|
||||
static int
|
||||
qemuBuildDriveSourceStr(virDomainDiskDefPtr disk,
|
||||
virQEMUDriverConfigPtr cfg,
|
||||
@ -1450,7 +1472,8 @@ qemuBuildDriveSourceStr(virDomainDiskDefPtr disk,
|
||||
char *source = NULL;
|
||||
int ret = -1;
|
||||
|
||||
if (qemuGetDriveSourceProps(disk->src, &srcprops) < 0)
|
||||
if (qemuDiskSourceNeedsProps(disk->src) &&
|
||||
qemuGetDriveSourceProps(disk->src, &srcprops) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (!srcprops &&
|
||||
|
Loading…
x
Reference in New Issue
Block a user