|
|
952426 |
From 91bf4656fec73b8a083d7dae0a98490196f6dcbe Mon Sep 17 00:00:00 2001
|
|
|
952426 |
Message-Id: <91bf4656fec73b8a083d7dae0a98490196f6dcbe@dist-git>
|
|
|
952426 |
From: Michal Privoznik <mprivozn@redhat.com>
|
|
|
952426 |
Date: Fri, 16 Mar 2018 12:33:12 +0100
|
|
|
952426 |
Subject: [PATCH] virDomainDeviceDefValidateAliasesIterator: Ignore some
|
|
|
952426 |
hostdevs
|
|
|
952426 |
|
|
|
952426 |
https://bugzilla.redhat.com/show_bug.cgi?id=1556828
|
|
|
952426 |
|
|
|
952426 |
When defining a domain that has <interface type='hostdev'/> our
|
|
|
952426 |
parser creates two entries in virDomainDef: one for <interface/>
|
|
|
952426 |
and one for <hostdev/>. However, some info is shared between the
|
|
|
952426 |
two which makes user alias validation fail because alias belongs
|
|
|
952426 |
to the set of shared info.
|
|
|
952426 |
|
|
|
952426 |
Signed-off-by: Michal Privoznik <mprivozn@redhat.com>
|
|
|
952426 |
Reviewed-by: Jiri Denemark <jdenemar@redhat.com>
|
|
|
952426 |
(cherry picked from commit 630c6e34957666f20a66167c7a512e65fc711aa0)
|
|
|
952426 |
|
|
|
952426 |
https://bugzilla.redhat.com/show_bug.cgi?id=1558655
|
|
|
952426 |
|
|
|
952426 |
Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
|
|
|
952426 |
---
|
|
|
952426 |
src/conf/domain_conf.c | 7 +++++++
|
|
|
952426 |
1 file changed, 7 insertions(+)
|
|
|
952426 |
|
|
|
952426 |
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
|
|
|
952426 |
index a0c0702a6c..031d4b8e55 100644
|
|
|
952426 |
--- a/src/conf/domain_conf.c
|
|
|
952426 |
+++ b/src/conf/domain_conf.c
|
|
|
952426 |
@@ -5571,6 +5571,13 @@ virDomainDeviceDefValidateAliasesIterator(virDomainDefPtr def,
|
|
|
952426 |
virDomainChrEquals(def->serials[0], dev->data.chr))
|
|
|
952426 |
return 0;
|
|
|
952426 |
|
|
|
952426 |
+ if (dev->type == VIR_DOMAIN_DEVICE_HOSTDEV &&
|
|
|
952426 |
+ dev->data.hostdev->parent.type == VIR_DOMAIN_DEVICE_NET) {
|
|
|
952426 |
+ /* This hostdev is a copy of some previous interface.
|
|
|
952426 |
+ * Aliases are duplicated. */
|
|
|
952426 |
+ return 0;
|
|
|
952426 |
+ }
|
|
|
952426 |
+
|
|
|
952426 |
if (virHashLookup(data->aliases, alias)) {
|
|
|
952426 |
virReportError(VIR_ERR_XML_ERROR,
|
|
|
952426 |
_("non unique alias detected: %s"),
|
|
|
952426 |
--
|
|
|
952426 |
2.16.2
|
|
|
952426 |
|