diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index ef8696be4690c0e202f20eb6f2bbf08a2ea6e0fc..ad4e7ab76e249bb1cf2ac1c5e8ec4f142e4e508c 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -300,8 +300,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; diff --git a/src/qemu/qemu_process.c b/src/qemu/qemu_process.c index 0ccc3ac64385de5d176a0887fb28e37bb5a9eb13..4a7c141b933fa2533fc2eeb5ee95390146a4cee6 100644 --- a/src/qemu/qemu_process.c +++ b/src/qemu/qemu_process.c @@ -5555,6 +5555,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;