[libvirt] [PATCH 2/3] setmem: add virDomainSetMemroyFlags(, , VIR_DOMAIN_MEM_CURRENT) support to qemu driver
Eric Blake
eblake at redhat.com
Thu Apr 7 23:23:45 UTC 2011
Long subject line. 'git shortlog -20' should give you a feel for how to
shorten this; I went with:
setmem: add VIR_DOMAIN_MEM_CURRENT support to qemu
On 03/22/2011 11:48 PM, Taku Izumi wrote:
>
> This patch adds virDomainSetMemroyFlags(,,VIR_DOMAIN_MEM_CURRENT) support
s/Memroy/Memory/
> code to qemu driver.
>
> Signed-off-by: Taku Izumi <izumi.taku at jp.fujitsu.com>
> ---
> src/qemu/qemu_driver.c | 18 +++++++++++-------
> 1 file changed, 11 insertions(+), 7 deletions(-)
>
> Index: libvirt/src/qemu/qemu_driver.c
> ===================================================================
> --- libvirt.orig/src/qemu/qemu_driver.c
> +++ libvirt/src/qemu/qemu_driver.c
> @@ -1575,16 +1575,11 @@ static int qemudDomainSetMemoryFlags(vir
> qemuDomainObjPrivatePtr priv;
> virDomainObjPtr vm;
> virDomainDefPtr persistentDef = NULL;
> - int ret = -1, r;
> + int ret = -1, r, isActive;
Hmm, based on the name, I would have guessed isActive is better as a bool.
>
> 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);
> @@ -1605,7 +1600,16 @@ static int qemudDomainSetMemoryFlags(vir
> if (qemuDomainObjBeginJob(vm) < 0)
> goto cleanup;
>
> - if (!virDomainObjIsActive(vm) && (flags & VIR_DOMAIN_MEM_LIVE)) {
> + isActive = virDomainObjIsActive(vm);
Surprisingly, virDomainObjIsActive returns int instead of bool. Well,
no longer :)
> +
> + 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;
I squashed this in, then pushed:
diff --git i/src/conf/domain_conf.h w/src/conf/domain_conf.h
index 10e73cb..95bd11e 100644
--- i/src/conf/domain_conf.h
+++ w/src/conf/domain_conf.h
@@ -1172,7 +1172,7 @@ struct _virDomainObjList {
virHashTable *objs;
};
-static inline int
+static inline bool
virDomainObjIsActive(virDomainObjPtr dom)
{
return dom->def->id != -1;
diff --git i/src/qemu/qemu_driver.c w/src/qemu/qemu_driver.c
index c0e706c..6a0bf24 100644
--- i/src/qemu/qemu_driver.c
+++ w/src/qemu/qemu_driver.c
@@ -1576,7 +1576,8 @@ static int qemudDomainSetMemoryFlags(virDomainPtr
dom, unsigned long newmem,
qemuDomainObjPrivatePtr priv;
virDomainObjPtr vm;
virDomainDefPtr persistentDef = NULL;
- int ret = -1, r, isActive;
+ int ret = -1, r;
+ bool isActive;
virCheckFlags(VIR_DOMAIN_MEM_LIVE |
VIR_DOMAIN_MEM_CONFIG, -1);
--
Eric Blake eblake at redhat.com +1-801-349-2682
Libvirt virtualization library http://libvirt.org
-------------- next part --------------
A non-text attachment was scrubbed...
Name: signature.asc
Type: application/pgp-signature
Size: 619 bytes
Desc: OpenPGP digital signature
URL: <http://listman.redhat.com/archives/libvir-list/attachments/20110407/e1f5f516/attachment-0001.sig>
More information about the libvir-list
mailing list