]> xenbits.xensource.com Git - people/dariof/libvirt.git/commitdiff
qemu: Report VIR_DOMAIN_MEMORY_PARAM_UNLIMITED properly
authorMartin Kletzander <mkletzan@redhat.com>
Wed, 4 Dec 2013 17:56:02 +0000 (18:56 +0100)
committerMartin Kletzander <mkletzan@redhat.com>
Tue, 10 Dec 2013 07:38:46 +0000 (08:38 +0100)
For dead domains that have no memtune limits, we return 0 instead of
"unlimited", this patch fixes it to return PARAM_UNLIMITED.

Signed-off-by: Martin Kletzander <mkletzan@redhat.com>
src/qemu/qemu_driver.c

index 66f2a0e651cf3e59f7b0d1075d6def5544521249..4b93c02114b136a36e59820f7bec40f13c9913dd 100644 (file)
@@ -8053,29 +8053,30 @@ qemuDomainGetMemoryParameters(virDomainPtr dom,
     if (flags & VIR_DOMAIN_AFFECT_CONFIG) {
         for (i = 0; i < *nparams && i < QEMU_NB_MEM_PARAM; i++) {
             virMemoryParameterPtr param = &params[i];
+            unsigned long long value;
 
             switch (i) {
             case 0: /* fill memory hard limit here */
-                if (virTypedParameterAssign(param,
-                                            VIR_DOMAIN_MEMORY_HARD_LIMIT,
-                                            VIR_TYPED_PARAM_ULLONG,
-                                            persistentDef->mem.hard_limit) < 0)
+                value = persistentDef->mem.hard_limit;
+                value = value ? value : VIR_DOMAIN_MEMORY_PARAM_UNLIMITED;
+                if (virTypedParameterAssign(param, VIR_DOMAIN_MEMORY_HARD_LIMIT,
+                                            VIR_TYPED_PARAM_ULLONG, value) < 0)
                     goto cleanup;
                 break;
 
             case 1: /* fill memory soft limit here */
-                if (virTypedParameterAssign(param,
-                                            VIR_DOMAIN_MEMORY_SOFT_LIMIT,
-                                            VIR_TYPED_PARAM_ULLONG,
-                                            persistentDef->mem.soft_limit) < 0)
+                value = persistentDef->mem.soft_limit;
+                value = value ? value : VIR_DOMAIN_MEMORY_PARAM_UNLIMITED;
+                if (virTypedParameterAssign(param, VIR_DOMAIN_MEMORY_SOFT_LIMIT,
+                                            VIR_TYPED_PARAM_ULLONG, value) < 0)
                     goto cleanup;
                 break;
 
             case 2: /* fill swap hard limit here */
-                if (virTypedParameterAssign(param,
-                                            VIR_DOMAIN_MEMORY_SWAP_HARD_LIMIT,
-                                            VIR_TYPED_PARAM_ULLONG,
-                                            persistentDef->mem.swap_hard_limit) < 0)
+                value = persistentDef->mem.swap_hard_limit;
+                value = value ? value : VIR_DOMAIN_MEMORY_PARAM_UNLIMITED;
+                if (virTypedParameterAssign(param, VIR_DOMAIN_MEMORY_SWAP_HARD_LIMIT,
+                                            VIR_TYPED_PARAM_ULLONG, value) < 0)
                     goto cleanup;
                 break;