mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-24 04:12:20 +00:00
qemu: domain: Add helper for getting the disk backend alias
The disk backend alias was historically the alias of the -drive backing the storage. For setups with -blockdev this will become more complex as it will depend on other configs and generally will differ. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
b05a48c0d2
commit
8abbc72bd2
@ -8599,6 +8599,34 @@ qemuDomainDetermineDiskChain(virQEMUDriverPtr driver,
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* qemuDomainDiskGetBackendAlias:
|
||||
* @disk: disk definition
|
||||
* @qemuCaps: emulator capabilities
|
||||
* @backendAlias: filled with the alias of the disk storage backend
|
||||
*
|
||||
* Returns the correct alias for the disk backend. This may be the alias of
|
||||
* -drive for legacy setup or the correct node name for -blockdev setups.
|
||||
*
|
||||
* @backendAlias may be NULL on success if the backend does not exist
|
||||
* (disk is empty). Caller is responsible for freeing @backendAlias.
|
||||
*
|
||||
* Returns 0 on success, -1 on error with libvirt error reported.
|
||||
*/
|
||||
int
|
||||
qemuDomainDiskGetBackendAlias(virDomainDiskDefPtr disk,
|
||||
virQEMUCapsPtr qemuCaps ATTRIBUTE_UNUSED,
|
||||
char **backendAlias)
|
||||
{
|
||||
*backendAlias = NULL;
|
||||
|
||||
if (!(*backendAlias = qemuAliasDiskDriveFromDisk(disk)))
|
||||
return -1;
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* qemuDomainDiskChainElementRevoke:
|
||||
*
|
||||
|
@ -732,6 +732,12 @@ int qemuDomainStorageFileInit(virQEMUDriverPtr driver,
|
||||
virStorageSourcePtr parent);
|
||||
char *qemuDomainStorageAlias(const char *device, int depth);
|
||||
|
||||
int qemuDomainDiskGetBackendAlias(virDomainDiskDefPtr disk,
|
||||
virQEMUCapsPtr qemuCaps,
|
||||
char **backendAlias)
|
||||
ATTRIBUTE_NONNULL(1) ATTRIBUTE_NONNULL(2)
|
||||
ATTRIBUTE_NONNULL(3) ATTRIBUTE_RETURN_CHECK;
|
||||
|
||||
void qemuDomainDiskChainElementRevoke(virQEMUDriverPtr driver,
|
||||
virDomainObjPtr vm,
|
||||
virStorageSourcePtr elem);
|
||||
|
Loading…
x
Reference in New Issue
Block a user