Use the appropriate type for the variable and refactor the XML parser to
parse it correctly using virXMLPropEnum.
Signed-off-by: Peter Krempa <pkrempa(a)redhat.com>
---
src/conf/domain_conf.c | 14 +++-----------
src/conf/domain_conf.h | 2 +-
2 files changed, 4 insertions(+), 12 deletions(-)
diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c
index 5e27ca6265..6641a7a78b 100644
--- a/src/conf/domain_conf.c
+++ b/src/conf/domain_conf.c
@@ -9314,7 +9314,6 @@ virDomainDiskDefParseXML(virDomainXMLOption *xmlopt,
bool source = false;
g_autofree char *tmp = NULL;
g_autofree char *snapshot = NULL;
- g_autofree char *rawio = NULL;
g_autofree char *sgio = NULL;
g_autofree char *target = NULL;
g_autofree char *bus = NULL;
@@ -9357,7 +9356,9 @@ virDomainDiskDefParseXML(virDomainXMLOption *xmlopt,
snapshot = virXMLPropString(node, "snapshot");
- rawio = virXMLPropString(node, "rawio");
+ if (virXMLPropTristateBool(node, "rawio", VIR_XML_PROP_OPTIONAL,
&def->rawio) < 0)
+ return NULL;
+
sgio = virXMLPropString(node, "sgio");
for (cur = node->children; cur != NULL; cur = cur->next) {
@@ -9473,15 +9474,6 @@ virDomainDiskDefParseXML(virDomainXMLOption *xmlopt,
}
}
- if (rawio) {
- if ((def->rawio = virTristateBoolTypeFromString(rawio)) <= 0) {
- virReportError(VIR_ERR_XML_ERROR,
- _("unknown disk rawio setting '%s'"),
- rawio);
- return NULL;
- }
- }
-
if (sgio) {
if ((def->sgio = virDomainDeviceSGIOTypeFromString(sgio)) <= 0) {
virReportError(VIR_ERR_CONFIG_UNSUPPORTED,
diff --git a/src/conf/domain_conf.h b/src/conf/domain_conf.h
index 878ba4c961..b3a91c0a4c 100644
--- a/src/conf/domain_conf.h
+++ b/src/conf/domain_conf.h
@@ -577,7 +577,7 @@ struct _virDomainDiskDef {
virDomainStartupPolicy startupPolicy;
bool transient;
virDomainDeviceInfo info;
- int rawio; /* enum virTristateBool */
+ virTristateBool rawio;
int sgio; /* enum virDomainDeviceSGIO */
int discard; /* enum virDomainDiskDiscard */
unsigned int iothread; /* unused = 0, > 0 specific thread # */
--
2.30.2