Sign Up
Log In
Log In
or
Sign Up
Places
All Projects
Status Monitor
Collapse sidebar
openSUSE:Leap:15.5:Update
libvirt.29828
86cfe93e-qemuProcessRefreshDisks-fix-info.patch
Overview
Repositories
Revisions
Requests
Users
Attributes
Meta
File 86cfe93e-qemuProcessRefreshDisks-fix-info.patch of Package libvirt.29828
From a05cd31320a7ad1401bef9eec5ba37a52b52329b Mon Sep 17 00:00:00 2001 From: Peter Krempa <pkrempa@redhat.com> Date: Thu, 9 Feb 2023 09:40:32 +0100 Subject: [PATCH] qemuProcessRefreshDisks: Don't skip filling of disk information if tray state didn't change Commit 5ef2582646eb98 added emitting of even when refreshign disk state, where it wanted to avoid sending the event if disk state didn't change. This was achieved by using 'continue' in the loop filling the information. Unfortunately this skips extraction of whether the device has a tray which is propagated into internal structures, which in turn broke cdrom media change as the code thought there's no tray for the device. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=2166411 Fixes: 5ef2582646eb98af208ce37355f82bdef39931fa Signed-off-by: Peter Krempa <pkrempa@redhat.com> Reviewed-by: Kristina Hanicova <khanicov@redhat.com> (cherry picked from commit 86cfe93ef7fdc2d665a2fc88b79af89e7978ba78) --- src/qemu/qemu_process.c | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) Index: libvirt-9.0.0/src/qemu/qemu_process.c =================================================================== --- libvirt-9.0.0.orig/src/qemu/qemu_process.c +++ libvirt-9.0.0/src/qemu/qemu_process.c @@ -8728,16 +8728,13 @@ qemuProcessRefreshDisks(virDomainObj *vm continue; if (info->removable) { - virObjectEvent *event = NULL; + bool emitEvent = info->tray_open != disk->tray_status; int reason; if (info->empty) virDomainDiskEmptySource(disk); if (info->tray) { - if (info->tray_open == disk->tray_status) - continue; - if (info->tray_open) { reason = VIR_DOMAIN_EVENT_TRAY_CHANGE_OPEN; disk->tray_status = VIR_DOMAIN_DISK_TRAY_OPEN; @@ -8746,8 +8743,10 @@ qemuProcessRefreshDisks(virDomainObj *vm disk->tray_status = VIR_DOMAIN_DISK_TRAY_CLOSED; } - event = virDomainEventTrayChangeNewFromObj(vm, disk->info.alias, reason); - virObjectEventStateQueue(driver->domainEventState, event); + if (emitEvent) { + virObjectEvent *event = virDomainEventTrayChangeNewFromObj(vm, disk->info.alias, reason); + virObjectEventStateQueue(driver->domainEventState, event); + } } }
Locations
Projects
Search
Status Monitor
Help
OpenBuildService.org
Documentation
API Documentation
Code of Conduct
Contact
Support
@OBShq
Terms
openSUSE Build Service is sponsored by
The Open Build Service is an
openSUSE project
.
Sign Up
Log In
Places
Places
All Projects
Status Monitor