提交 65909c79 编写于 作者: A Andrea Bolognani

qemu: Use qemuDomainAdjustMaxMemLock()

Replace all uses of the qemuDomainRequiresMlock/virProcessSetMaxMemLock
combination with the equivalent qemuDomainAdjustMaxMemLock() call.
上级 ac7e4df4
...@@ -1282,17 +1282,14 @@ qemuDomainAttachHostPCIDevice(virQEMUDriverPtr driver, ...@@ -1282,17 +1282,14 @@ qemuDomainAttachHostPCIDevice(virQEMUDriverPtr driver,
} }
/* Temporarily add the hostdev to the domain definition. This is needed /* Temporarily add the hostdev to the domain definition. This is needed
* because qemuDomainRequiresMlock() and qemuDomainGetMlockLimitBytes() * because qemuDomainAdjustMaxMemLock() requires the hostdev to be already
* require the hostdev to be already part of the domain definition, but * part of the domain definition, but other functions like
* other functions like qemuAssignDeviceHostdevAlias() used below expect * qemuAssignDeviceHostdevAlias() used below expect it *not* to be there.
* it *not* to be there. A better way to handle this would be nice */ * A better way to handle this would be nice */
vm->def->hostdevs[vm->def->nhostdevs++] = hostdev; vm->def->hostdevs[vm->def->nhostdevs++] = hostdev;
if (qemuDomainRequiresMlock(vm->def)) { if (qemuDomainAdjustMaxMemLock(vm) < 0) {
if (virProcessSetMaxMemLock(vm->pid, vm->def->hostdevs[--(vm->def->nhostdevs)] = NULL;
qemuDomainGetMlockLimitBytes(vm->def)) < 0) { goto error;
vm->def->hostdevs[--(vm->def->nhostdevs)] = NULL;
goto error;
}
} }
vm->def->hostdevs[--(vm->def->nhostdevs)] = NULL; vm->def->hostdevs[--(vm->def->nhostdevs)] = NULL;
...@@ -1778,7 +1775,6 @@ qemuDomainAttachMemory(virQEMUDriverPtr driver, ...@@ -1778,7 +1775,6 @@ qemuDomainAttachMemory(virQEMUDriverPtr driver,
virJSONValuePtr props = NULL; virJSONValuePtr props = NULL;
virObjectEventPtr event; virObjectEventPtr event;
bool fix_balloon = false; bool fix_balloon = false;
bool mlock = false;
int id; int id;
int ret = -1; int ret = -1;
...@@ -1810,12 +1806,7 @@ qemuDomainAttachMemory(virQEMUDriverPtr driver, ...@@ -1810,12 +1806,7 @@ qemuDomainAttachMemory(virQEMUDriverPtr driver,
goto cleanup; goto cleanup;
} }
mlock = qemuDomainRequiresMlock(vm->def); if (qemuDomainAdjustMaxMemLock(vm) < 0) {
if (mlock &&
virProcessSetMaxMemLock(vm->pid,
qemuDomainGetMlockLimitBytes(vm->def)) < 0) {
mlock = false;
virJSONValueFree(props); virJSONValueFree(props);
goto removedef; goto removedef;
} }
...@@ -1876,13 +1867,10 @@ qemuDomainAttachMemory(virQEMUDriverPtr driver, ...@@ -1876,13 +1867,10 @@ qemuDomainAttachMemory(virQEMUDriverPtr driver,
mem = NULL; mem = NULL;
/* reset the mlock limit */ /* reset the mlock limit */
if (mlock) { virErrorPtr err = virSaveLastError();
virErrorPtr err = virSaveLastError(); ignore_value(qemuDomainAdjustMaxMemLock(vm));
ignore_value(virProcessSetMaxMemLock(vm->pid, virSetError(err);
qemuDomainGetMlockLimitBytes(vm->def))); virFreeError(err);
virSetError(err);
virFreeError(err);
}
goto audit; goto audit;
} }
...@@ -2976,9 +2964,7 @@ qemuDomainRemoveMemoryDevice(virQEMUDriverPtr driver, ...@@ -2976,9 +2964,7 @@ qemuDomainRemoveMemoryDevice(virQEMUDriverPtr driver,
virDomainMemoryDefFree(mem); virDomainMemoryDefFree(mem);
/* decrease the mlock limit after memory unplug if necessary */ /* decrease the mlock limit after memory unplug if necessary */
if (qemuDomainRequiresMlock(vm->def)) ignore_value(qemuDomainAdjustMaxMemLock(vm));
ignore_value(virProcessSetMaxMemLock(vm->pid,
qemuDomainGetMlockLimitBytes(vm->def)));
return 0; return 0;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册