提交 320825b4 编写于 作者: J John Ferlan

domain_conf: Change virDomainDiskDef 'rawio' to use virTristateBool

Adjust disk definition for 'rawio' to use the TristateBool logic
上级 8921d488
...@@ -5954,12 +5954,7 @@ virDomainDiskDefParseXML(virDomainXMLOptionPtr xmlopt, ...@@ -5954,12 +5954,7 @@ virDomainDiskDefParseXML(virDomainXMLOptionPtr xmlopt,
} }
if (rawio) { if (rawio) {
def->rawio_specified = true; if ((def->rawio = virTristateBoolTypeFromString(rawio)) <= 0) {
if (STREQ(rawio, "yes")) {
def->rawio = 1;
} else if (STREQ(rawio, "no")) {
def->rawio = 0;
} else {
virReportError(VIR_ERR_XML_ERROR, virReportError(VIR_ERR_XML_ERROR,
_("unknown disk rawio setting '%s'"), _("unknown disk rawio setting '%s'"),
rawio); rawio);
...@@ -15828,12 +15823,9 @@ virDomainDiskDefFormat(virBufferPtr buf, ...@@ -15828,12 +15823,9 @@ virDomainDiskDefFormat(virBufferPtr buf,
virBufferAsprintf(buf, virBufferAsprintf(buf,
"<disk type='%s' device='%s'", "<disk type='%s' device='%s'",
type, device); type, device);
if (def->rawio_specified) { if (def->rawio) {
if (def->rawio == 1) { virBufferAsprintf(buf, " rawio='%s'",
virBufferAddLit(buf, " rawio='yes'"); virTristateBoolTypeToString(def->rawio));
} else if (def->rawio == 0) {
virBufferAddLit(buf, " rawio='no'");
}
} }
if (def->sgio) if (def->sgio)
......
...@@ -663,8 +663,7 @@ struct _virDomainDiskDef { ...@@ -663,8 +663,7 @@ struct _virDomainDiskDef {
int startupPolicy; /* enum virDomainStartupPolicy */ int startupPolicy; /* enum virDomainStartupPolicy */
bool transient; bool transient;
virDomainDeviceInfo info; virDomainDeviceInfo info;
bool rawio_specified; int rawio; /* enum virTristateBool */
int rawio; /* no = 0, yes = 1 */
int sgio; /* enum virDomainDeviceSGIO */ int sgio; /* enum virDomainDeviceSGIO */
int discard; /* enum virDomainDiskDiscard */ int discard; /* enum virDomainDiskDiscard */
unsigned int iothread; /* unused = 0, > 0 specific thread # */ unsigned int iothread; /* unused = 0, > 0 specific thread # */
......
...@@ -1945,8 +1945,9 @@ void qemuDomainObjCheckDiskTaint(virQEMUDriverPtr driver, ...@@ -1945,8 +1945,9 @@ void qemuDomainObjCheckDiskTaint(virQEMUDriverPtr driver,
cfg->allowDiskFormatProbing) cfg->allowDiskFormatProbing)
qemuDomainObjTaint(driver, obj, VIR_DOMAIN_TAINT_DISK_PROBING, logFD); qemuDomainObjTaint(driver, obj, VIR_DOMAIN_TAINT_DISK_PROBING, logFD);
if (disk->rawio == 1) if (disk->rawio == VIR_TRISTATE_BOOL_YES)
qemuDomainObjTaint(driver, obj, VIR_DOMAIN_TAINT_HIGH_PRIVILEGES, logFD); qemuDomainObjTaint(driver, obj, VIR_DOMAIN_TAINT_HIGH_PRIVILEGES,
logFD);
virObjectUnref(cfg); virObjectUnref(cfg);
} }
......
...@@ -4357,7 +4357,7 @@ int qemuProcessStart(virConnectPtr conn, ...@@ -4357,7 +4357,7 @@ int qemuProcessStart(virConnectPtr conn,
virDomainDeviceDef dev; virDomainDeviceDef dev;
virDomainDiskDefPtr disk = vm->def->disks[i]; virDomainDiskDefPtr disk = vm->def->disks[i];
if (vm->def->disks[i]->rawio == 1) { if (vm->def->disks[i]->rawio == VIR_TRISTATE_BOOL_YES) {
#ifdef CAP_SYS_RAWIO #ifdef CAP_SYS_RAWIO
virCommandAllowCap(cmd, CAP_SYS_RAWIO); virCommandAllowCap(cmd, CAP_SYS_RAWIO);
#else #else
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册