mirror of
https://github.com/libvirt/libvirt.git
synced 2025-02-25 18:55:26 -06:00
domain_conf: Change virDomainDiskDef 'rawio' to use virTristateBool
Adjust disk definition for 'rawio' to use the TristateBool logic
This commit is contained in:
parent
8921d48868
commit
320825b4ca
@ -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,
|
|||||||
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 {
|
|||||||
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,
|
|||||||
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,
|
|||||||
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
|
||||||
|
Loading…
Reference in New Issue
Block a user