]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemu: Check empty drives in block I/O throttle API
authorFabian Leditzky <fabian@ldsoft.dev>
Tue, 21 Jan 2025 14:33:25 +0000 (14:33 +0000)
committerPeter Krempa <pkrempa@redhat.com>
Wed, 29 Jan 2025 15:15:29 +0000 (16:15 +0100)
Provide a proper user facing error when attempting to query block
I/O throttling settings for an empty drive. Without this patch, a less
meaningful internal error produced by qemuMonitorJSONBlockIoThrottleInfo
would be propagated to the user.

Signed-off-by: Fabian Leditzky <fabian@ldsoft.dev>
Reviewed-by: Peter Krempa <pkrempa@redhat.com>
src/qemu/qemu_driver.c

index a1fc61bae2a65feb75374d90311808ce8d2bd6a7..da714f19757cc577aafe8c952ee8b852e24efa31 100644 (file)
@@ -15368,6 +15368,14 @@ qemuDomainGetBlockIoTune(virDomainPtr dom,
         if (!qemuDomainDiskBlockIoTuneIsSupported(disk))
             goto endjob;
 
+        /* qemu won't return block IO throttle settings for an empty cd-rom drive */
+        if (virStorageSourceIsEmpty(disk->src)) {
+            virReportError(VIR_ERR_INVALID_ARG,
+                           _("disk '%1$s' does not currently have a source assigned"),
+                           path);
+            goto endjob;
+        }
+
         qemuDomainObjEnterMonitor(vm);
         rc = qemuMonitorGetBlockIoThrottle(priv->mon, QEMU_DOMAIN_DISK_PRIVATE(disk)->qomName, &reply);
         qemuDomainObjExitMonitor(vm);