diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index ef8696be46..ad4e7ab76e 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 0ccc3ac643..4a7c141b93 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;