From: Daniel P. Berrange Date: Fri, 16 Mar 2012 11:05:31 +0000 (+0000) Subject: Fix handling of blkio deviceWeight empty string X-Git-Tag: v0.9.11-rc1~60 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f987d17511a47b48c0652f1c6aecabda6fb07e8f;p=thirdparty%2Flibvirt.git Fix handling of blkio deviceWeight empty string 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 --- diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index b20b3e90cb..2c467abe60 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -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);