From d179acf4ad5001b8b02d79167e4e65a35c612c15 Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Fri, 6 Dec 2019 14:06:55 +0100 Subject: [PATCH] qemu: driver: Use appropriate job name when setting blockjob speed qemuDomainBlockJobSetSpeed was not converted to get the job name from the block job data. This means that after enabling blockdev the API call would fail as we wouldn't use the appropriate name. https://bugzilla.redhat.com/show_bug.cgi?id=1780497 Signed-off-by: Peter Krempa Reviewed-by: Eric Blake --- src/qemu/qemu_driver.c | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c index 572cea0d40..738e8832cc 100644 --- a/src/qemu/qemu_driver.c +++ b/src/qemu/qemu_driver.c @@ -17864,8 +17864,8 @@ qemuDomainBlockJobSetSpeed(virDomainPtr dom, virDomainDiskDefPtr disk; int ret = -1; virDomainObjPtr vm; - g_autofree char *device = NULL; unsigned long long speed = bandwidth; + g_autoptr(qemuBlockJobData) job = NULL; virCheckFlags(VIR_DOMAIN_BLOCK_JOB_SPEED_BANDWIDTH_BYTES, -1); @@ -17895,12 +17895,15 @@ qemuDomainBlockJobSetSpeed(virDomainPtr dom, if (!(disk = qemuDomainDiskByName(vm->def, path))) goto endjob; - if (!(device = qemuAliasDiskDriveFromDisk(disk))) + if (!(job = qemuBlockJobDiskGetJob(disk))) { + virReportError(VIR_ERR_INVALID_ARG, + _("disk %s does not have an active block job"), disk->dst); goto endjob; + } qemuDomainObjEnterMonitor(driver, vm); ret = qemuMonitorBlockJobSetSpeed(qemuDomainGetMonitor(vm), - device, + job->name, speed); if (qemuDomainObjExitMonitor(driver, vm) < 0) ret = -1; -- 2.47.2