]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
qemuDomainAttachDiskGeneric: Report errors from 'qemuBuildThrottleFiltersAttachPrepar...
authorPeter Krempa <pkrempa@redhat.com>
Fri, 11 Apr 2025 11:42:37 +0000 (13:42 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Fri, 11 Apr 2025 14:24:59 +0000 (16:24 +0200)
'qemuBuildThrottleFiltersAttachPrepareBlockdev' can fail when
constructing JSON props, but otherwise always retruns a pointer even if
there's nothing to do.

The code in 'qemuDomainAttachDiskGeneric' didn't handle this properly as
it considered NULL as "nothing to do". Return the failure instead and
check if tere's something to do by looking at 'nfilterdata'

Signed-off-by: Peter Krempa <pkrempa@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/qemu/qemu_hotplug.c

index 4562a75d2a76a5b357cd84181dc2def7027c38b1..5326aba2811e78829b343e34ef0dc75bd4ef0fe3 100644 (file)
@@ -740,10 +740,15 @@ qemuDomainAttachDiskGeneric(virDomainObj *vm,
         if (rc < 0)
             goto rollback;
 
-        if ((filterData = qemuBuildThrottleFiltersAttachPrepareBlockdev(disk))) {
+        if (!(filterData = qemuBuildThrottleFiltersAttachPrepareBlockdev(disk)))
+            return -1;
+
+        if (filterData->nfilterdata > 0) {
             if (qemuDomainObjEnterMonitorAsync(vm, asyncJob) < 0)
                 return -1;
+
             rc = qemuBlockThrottleFiltersAttach(priv->mon, filterData);
+
             qemuDomainObjExitMonitor(vm);
             if (rc < 0)
                 goto rollback;