From f987d17511a47b48c0652f1c6aecabda6fb07e8f Mon Sep 17 00:00:00 2001 From: "Daniel P. Berrange" Date: Fri, 16 Mar 2012 11:05:31 +0000 Subject: [PATCH] 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 --- src/qemu/qemu_driver.c | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) 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);