]> xenbits.xensource.com Git - libvirt.git/commitdiff
Fix handling of blkio deviceWeight empty string
authorDaniel P. Berrange <berrange@redhat.com>
Fri, 16 Mar 2012 11:05:31 +0000 (11:05 +0000)
committerDaniel P. Berrange <berrange@redhat.com>
Fri, 16 Mar 2012 15:05:05 +0000 (15:05 +0000)
A common coding pattern for changing blkio parameters is

  1. virDomainGetBlkioParameters

  2. change one or more params

  3. virDomainSetBlkioParameters

For this to work, it must be possible to roundtrip through
the methods without error. Unfortunately virDomainGetBlkioParameters
will return "" for the deviceWeight parameter for guests by default,
which virDomainSetBlkioParameters will then reject as invalid.

This fixes the handling of "" to be a no-op, and also improves the
error message to tell you what was invalid

src/qemu/qemu_driver.c

index b20b3e90cbb83ac59c6d48e1aa297048009c2e99..2c467abe6093263d87743a54e744694f9d26b7ee 100644 (file)
@@ -5959,6 +5959,12 @@ qemuDomainParseDeviceWeightStr(char *deviceWeightStr,
     int i;
     virBlkioDeviceWeightPtr result = NULL;
 
+    *dw = NULL;
+    *size = 0;
+
+    if (STREQ(deviceWeightStr, ""))
+        return 0;
+
     temp = deviceWeightStr;
     while (temp) {
         temp = strchr(temp, ',');
@@ -6021,7 +6027,7 @@ qemuDomainParseDeviceWeightStr(char *deviceWeightStr,
 
 error:
     qemuReportError(VIR_ERR_INVALID_ARG,
-                    _("unable to parse %s"), deviceWeightStr);
+                    _("unable to parse device weight '%s'"), deviceWeightStr);
 cleanup:
     virBlkioDeviceWeightArrayClear(result, ndevices);
     VIR_FREE(result);