mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-22 03:12:22 +00:00
setmem: add VIR_DOMAIN_MEM_CURRENT support to qemu
This patch adds virDomainSetMemoryFlags(,,VIR_DOMAIN_MEM_CURRENT) support code to qemu driver. Also, change virDomainObjIsActive to return bool, given its usage. Signed-off-by: Taku Izumi <izumi.taku@jp.fujitsu.com>
This commit is contained in:
parent
0f2e50be5f
commit
95298e2380
@ -1172,7 +1172,7 @@ struct _virDomainObjList {
|
||||
virHashTable *objs;
|
||||
};
|
||||
|
||||
static inline int
|
||||
static inline bool
|
||||
virDomainObjIsActive(virDomainObjPtr dom)
|
||||
{
|
||||
return dom->def->id != -1;
|
||||
|
@ -1577,15 +1577,11 @@ static int qemudDomainSetMemoryFlags(virDomainPtr dom, unsigned long newmem,
|
||||
virDomainObjPtr vm;
|
||||
virDomainDefPtr persistentDef = NULL;
|
||||
int ret = -1, r;
|
||||
bool isActive;
|
||||
|
||||
virCheckFlags(VIR_DOMAIN_MEM_LIVE |
|
||||
VIR_DOMAIN_MEM_CONFIG, -1);
|
||||
|
||||
if ((flags & (VIR_DOMAIN_MEM_LIVE | VIR_DOMAIN_MEM_CONFIG)) == 0) {
|
||||
qemuReportError(VIR_ERR_INVALID_ARG,
|
||||
_("invalid flag combination: (0x%x)"), flags);
|
||||
}
|
||||
|
||||
qemuDriverLock(driver);
|
||||
vm = virDomainFindByUUID(&driver->domains, dom->uuid);
|
||||
qemuDriverUnlock(driver);
|
||||
@ -1606,7 +1602,16 @@ static int qemudDomainSetMemoryFlags(virDomainPtr dom, unsigned long newmem,
|
||||
if (qemuDomainObjBeginJob(vm) < 0)
|
||||
goto cleanup;
|
||||
|
||||
if (!virDomainObjIsActive(vm) && (flags & VIR_DOMAIN_MEM_LIVE)) {
|
||||
isActive = virDomainObjIsActive(vm);
|
||||
|
||||
if (flags == VIR_DOMAIN_MEM_CURRENT) {
|
||||
if (isActive)
|
||||
flags = VIR_DOMAIN_MEM_LIVE;
|
||||
else
|
||||
flags = VIR_DOMAIN_MEM_CONFIG;
|
||||
}
|
||||
|
||||
if (!isActive && (flags & VIR_DOMAIN_MEM_LIVE)) {
|
||||
qemuReportError(VIR_ERR_OPERATION_INVALID,
|
||||
"%s", _("domain is not running"));
|
||||
goto endjob;
|
||||
|
Loading…
x
Reference in New Issue
Block a user