]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: hotplug: Fix error reported when cdrom tray is locked
authorPeter Krempa <pkrempa@redhat.com>
Mon, 23 May 2016 14:32:06 +0000 (16:32 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Wed, 25 May 2016 08:15:54 +0000 (10:15 +0200)
Commit 1fad65d49aae364576bd91352a001249510f8d4e used a really big hammer
and overwrote the error message that might be reported by qemu if the
tray is locked. Fix it by reporting the error only if no error is
currently set.

Error after commit mentioned above:
error: internal error: timed out waiting for disk tray status update

New error:
error: internal error: unable to execute QEMU command 'eject': Tray of
device 'drive-ide0-0-0' is not open

src/qemu/qemu_hotplug.c

index 4c3f7da3946bd045265f072d06b2a49681e5147e..cb566d424fe8939854fc297cc5a0cf162950e03f 100644 (file)
@@ -163,8 +163,12 @@ qemuHotplugWaitForTrayEject(virQEMUDriverPtr driver,
             return -1;
 
         if (rc > 0) {
-            virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
-                           _("timed out waiting for disk tray status update"));
+            /* the caller called qemuMonitorEjectMedia which usually reports an
+             * error. Report the failure in an off-chance that it didn't. */
+            if (!virGetLastError()) {
+                virReportError(VIR_ERR_INTERNAL_ERROR, "%s",
+                               _("timed out waiting for disk tray status update"));
+            }
             return -1;
         }
     }