Move this check to a new virDomainDefTunablesValidate(), which
is called by virDomainDefValidateInternal().
Reviewed-by: Michal Privoznik <mprivozn(a)redhat.com>
Signed-off-by: Daniel Henrique Barboza <danielhb413(a)gmail.com>
---
src/conf/domain_conf.c | 14 ++++----------
src/conf/domain_validate.c | 21 +++++++++++++++++++++
src/conf/domain_validate.h | 1 +
3 files changed, 26 insertions(+), 10 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index a5dcb0bbce..064d77d933 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -6981,6 +6981,9 @@ virDomainDefValidateInternal(const virDomainDef *def,
if (virDomainDefVideoValidate(def) < 0)
return -1;
+ if (virDomainDefTunablesValidate(def) < 0)
+ return -1;
+
if (virDomainNumaDefValidate(def->numa) < 0)
return -1;
@@ -20875,7 +20878,7 @@ virDomainDefTunablesParse(virDomainDefPtr def,
unsigned int flags)
{
g_autofree xmlNodePtr *nodes = NULL;
- size_t i, j;
+ size_t i;
int n;
/* Extract blkio cgroup tunables */
@@ -20896,15 +20899,6 @@ virDomainDefTunablesParse(virDomainDefPtr def,
&def->blkio.devices[i]) < 0)
return -1;
def->blkio.ndevices++;
- for (j = 0; j < i; j++) {
- if (STREQ(def->blkio.devices[j].path,
- def->blkio.devices[i].path)) {
- virReportError(VIR_ERR_XML_ERROR,
- _("duplicate blkio device path '%s'"),
- def->blkio.devices[i].path);
- return -1;
- }
- }
}
VIR_FREE(nodes);
diff --git a/src/conf/domain_validate.c b/src/conf/domain_validate.c
index 6fca604d17..09ab908ea3 100644
--- a/src/conf/domain_validate.c
+++ b/src/conf/domain_validate.c
@@ -496,3 +496,24 @@ virDomainSmartcardDefValidate(const virDomainSmartcardDef
*smartcard,
return 0;
}
+
+
+int
+virDomainDefTunablesValidate(const virDomainDef *def)
+{
+ size_t i, j;
+
+ for (i = 0; i < def->blkio.ndevices; i++) {
+ for (j = 0; j < i; j++) {
+ if (STREQ(def->blkio.devices[j].path,
+ def->blkio.devices[i].path)) {
+ virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
+ _("duplicate blkio device path '%s'"),
+ def->blkio.devices[i].path);
+ return -1;
+ }
+ }
+ }
+
+ return 0;
+}
diff --git a/src/conf/domain_validate.h b/src/conf/domain_validate.h
index d65de50422..2bd9e71073 100644
--- a/src/conf/domain_validate.h
+++ b/src/conf/domain_validate.h
@@ -42,3 +42,4 @@ int virDomainRNGDefValidate(const virDomainRNGDef *rng,
const virDomainDef *def);
int virDomainSmartcardDefValidate(const virDomainSmartcardDef *smartcard,
const virDomainDef *def);
+int virDomainDefTunablesValidate(const virDomainDef *def);
--
2.26.2