mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-03-07 17:28:15 +00:00
conf: Always truncate balloon size to maximum memory size
Specifying a balloon size more than the memory size of a guest isn't something that should be rejected when parsing the XML. Truncate the size to the maximum memory size.
This commit is contained in:
parent
85d8ede9eb
commit
fccc2c3313
@ -3366,27 +3366,9 @@ virDomainDefPostParseInternal(virDomainDefPtr def,
|
||||
return -1;
|
||||
}
|
||||
|
||||
if (def->mem.cur_balloon > virDomainDefGetMemoryActual(def)) {
|
||||
/* Older libvirt could get into this situation due to
|
||||
* rounding; if the discrepancy is less than 4MiB, we silently
|
||||
* round down, otherwise we flag the issue. */
|
||||
if (VIR_DIV_UP(def->mem.cur_balloon, 4096) >
|
||||
VIR_DIV_UP(virDomainDefGetMemoryActual(def), 4096)) {
|
||||
virReportError(VIR_ERR_XML_ERROR,
|
||||
_("current memory '%lluk' exceeds "
|
||||
"maximum '%lluk'"),
|
||||
def->mem.cur_balloon,
|
||||
virDomainDefGetMemoryActual(def));
|
||||
return -1;
|
||||
} else {
|
||||
VIR_DEBUG("Truncating current %lluk to maximum %lluk",
|
||||
def->mem.cur_balloon,
|
||||
virDomainDefGetMemoryActual(def));
|
||||
if (def->mem.cur_balloon > virDomainDefGetMemoryActual(def) ||
|
||||
def->mem.cur_balloon == 0)
|
||||
def->mem.cur_balloon = virDomainDefGetMemoryActual(def);
|
||||
}
|
||||
} else if (def->mem.cur_balloon == 0) {
|
||||
def->mem.cur_balloon = virDomainDefGetMemoryActual(def);
|
||||
}
|
||||
|
||||
if ((def->mem.max_memory || def->mem.memory_slots) &&
|
||||
!(def->mem.max_memory && def->mem.memory_slots)) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user