virDomainDiskTranslateSourcePool: Translate 'volume' disks in whole backing chain

Now that we accept full backing chains on input nothing should prevent
users from also using disk type 'VOLUME' for specifying the backing
images.

Do the translation for the whole backing chain.

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Ján Tomko <jtomko@redhat.com>
This commit is contained in:
Peter Krempa 2020-02-05 13:05:05 +01:00
parent 63469116cc
commit 37f01262ee

View File

@ -31562,18 +31562,20 @@ int
virDomainDiskTranslateSourcePool(virDomainDiskDefPtr def)
{
g_autoptr(virConnect) conn = NULL;
virStorageSourcePtr n;
if (def->src->type != VIR_STORAGE_TYPE_VOLUME)
return 0;
for (n = def->src; virStorageSourceIsBacking(n); n = n->backingStore) {
if (n->type != VIR_STORAGE_TYPE_VOLUME || !n->srcpool)
continue;
if (!def->src->srcpool)
return 0;
if (!conn) {
if (!(conn = virGetConnectStorage()))
return -1;
}
if (!(conn = virGetConnectStorage()))
return -1;
if (virDomainStorageSourceTranslateSourcePool(def->src, conn) < 0)
return -1;
if (virDomainStorageSourceTranslateSourcePool(n, conn) < 0)
return -1;
}
if (def->startupPolicy != 0 &&
virStorageSourceGetActualType(def->src) != VIR_STORAGE_VOL_FILE) {