From 88860bb9d98ac00a31b335f843915c0401ee0d66 Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Tue, 29 May 2018 17:28:11 +0200 Subject: [PATCH] qemu: domain: Split validation and setup of the virStorageSource MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove the call to the validating function from the function which sets stuff up. Signed-off-by: Peter Krempa Reviewed-by: Ján Tomko --- src/qemu/qemu_domain.c | 11 +++++++---- src/qemu/qemu_domain.h | 6 ++++++ tests/qemublocktest.c | 3 +++ 3 files changed, 16 insertions(+), 4 deletions(-) diff --git a/src/qemu/qemu_domain.c b/src/qemu/qemu_domain.c index 91e5e28759..9e594d9860 100644 --- a/src/qemu/qemu_domain.c +++ b/src/qemu/qemu_domain.c @@ -4476,7 +4476,7 @@ qemuDomainDeviceDefValidateVideo(const virDomainVideoDef *video) } -static int +int qemuDomainValidateStorageSource(virStorageSourcePtr src, virQEMUCapsPtr qemuCaps) { @@ -8118,6 +8118,9 @@ qemuDomainDetermineDiskChain(virQEMUDriverPtr driver, goto cleanup; for (n = src; virStorageSourceIsBacking(n); n = n->backingStore) { + if (qemuDomainValidateStorageSource(n, priv->qemuCaps) < 0) + goto cleanup; + if (qemuDomainPrepareDiskSourceData(disk, n, cfg, priv->qemuCaps) < 0) goto cleanup; } @@ -12429,9 +12432,6 @@ qemuDomainPrepareDiskSourceData(virDomainDiskDefPtr disk, src->debugLevel = cfg->glusterDebugLevel; } - if (qemuDomainValidateStorageSource(src, qemuCaps) < 0) - return -1; - /* transfer properties valid for the full chain */ src->iomode = disk->iomode; src->cachemode = disk->cachemode; @@ -12482,6 +12482,9 @@ qemuDomainPrepareDiskSource(virDomainDiskDefPtr disk, { qemuDomainPrepareDiskCachemode(disk); + if (qemuDomainValidateStorageSource(disk->src, priv->qemuCaps) < 0) + return -1; + if (qemuDomainPrepareDiskSourceTLS(disk->src, cfg) < 0) return -1; diff --git a/src/qemu/qemu_domain.h b/src/qemu/qemu_domain.h index 36b000be60..f17157b951 100644 --- a/src/qemu/qemu_domain.h +++ b/src/qemu/qemu_domain.h @@ -1009,6 +1009,12 @@ qemuDomainPrepareDiskSourceData(virDomainDiskDefPtr disk, virQEMUCapsPtr qemuCaps) ATTRIBUTE_RETURN_CHECK; + +int +qemuDomainValidateStorageSource(virStorageSourcePtr src, + virQEMUCapsPtr qemuCaps); + + int qemuDomainPrepareDiskSource(virDomainDiskDefPtr disk, qemuDomainObjPrivatePtr priv, diff --git a/tests/qemublocktest.c b/tests/qemublocktest.c index 7f39f61018..ec882b43e1 100644 --- a/tests/qemublocktest.c +++ b/tests/qemublocktest.c @@ -219,6 +219,9 @@ testQemuDiskXMLToProps(const void *opaque) if (testQemuDiskXMLToJSONFakeSecrets(n) < 0) goto cleanup; + if (qemuDomainValidateStorageSource(n, data->qemuCaps) < 0) + goto cleanup; + if (qemuDomainPrepareDiskSourceData(disk, n, NULL, data->qemuCaps) < 0) goto cleanup;