提交 f6721a3d 编写于 作者: P Peter Krempa 提交者: Cole Robinson

qemu: process: Refresh ejectable media tray state on VM start

Empty floppy drives start with tray in "open" state and libvirt did not
refresh it after startup. The code that inserts media into the tray then
waited until the tray was open before inserting the media and thus
floppies could not be inserted.

Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1326660
(cherry picked from commit a34faf33)
上级 b73dc2e5
......@@ -299,8 +299,14 @@ qemuDomainCheckEjectableMedia(virQEMUDriverPtr driver,
if (!info)
goto cleanup;
if (info->tray_open && virDomainDiskGetSource(disk))
ignore_value(virDomainDiskSetSource(disk, NULL));
if (info->tray_open) {
if (virDomainDiskGetSource(disk))
ignore_value(virDomainDiskSetSource(disk, NULL));
disk->tray_status = VIR_DOMAIN_DISK_TRAY_OPEN;
} else {
disk->tray_status = VIR_DOMAIN_DISK_TRAY_CLOSED;
}
}
ret = 0;
......
......@@ -5457,6 +5457,10 @@ qemuProcessLaunch(virConnectPtr conn,
if (qemuProcessUpdateVideoRamSize(driver, vm, asyncJob) < 0)
goto cleanup;
VIR_DEBUG("Updating ejectable media status");
if (qemuDomainCheckEjectableMedia(driver, vm, asyncJob) < 0)
goto cleanup;
if (flags & VIR_QEMU_PROCESS_START_AUTODESTROY &&
qemuProcessAutoDestroyAdd(driver, vm, conn) < 0)
goto cleanup;
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册