mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-01-11 07:17:44 +00:00
util: storage: Fix virStorageSourceGetActualType if volume was not translated
virStorageSourceGetActualType would return VIR_STORAGE_TYPE_NONE in case when a virStorageSource of (top level) type VIR_STORAGE_TYPE_VOLUME was not prepared to use by the vm by calling virDomainDiskTranslateSourcePool. Fix this issue by returning VIR_STORAGE_TYPE_VOLUME in case when the volume was not translated yet. Additionally also add documentation for the function describing the quirk. Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
parent
1e49d1ec79
commit
6dd609114d
@ -2430,10 +2430,20 @@ virStorageSourcePoolDefFree(virStorageSourcePoolDefPtr def)
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* virStorageSourceGetActualType:
|
||||
* @def: storage source definition
|
||||
*
|
||||
* Returns type of @def. In case when the type is VIR_STORAGE_TYPE_VOLUME
|
||||
* and virDomainDiskTranslateSourcePool was called on @def the actual type
|
||||
* of the storage volume is returned rather than VIR_STORAGE_TYPE_VOLUME.
|
||||
*/
|
||||
int
|
||||
virStorageSourceGetActualType(const virStorageSource *def)
|
||||
{
|
||||
if (def->type == VIR_STORAGE_TYPE_VOLUME && def->srcpool)
|
||||
if (def->type == VIR_STORAGE_TYPE_VOLUME &&
|
||||
def->srcpool &&
|
||||
def->srcpool->actualtype != VIR_STORAGE_TYPE_NONE)
|
||||
return def->srcpool->actualtype;
|
||||
|
||||
return def->type;
|
||||
|
Loading…
Reference in New Issue
Block a user