Am 27.06.2014 09:16, schrieb Markus Armbruster: > Paolo Bonzini <pbonz...@redhat.com> writes: > >> When a device is unparented (i.e. made completely hidden from management) >> we want to send a DEVICE_DELETED event only if the device actually was >> realized. This avoids raising DEVICE_DELETED events when device_add >> fails. >> >> However, this does not work right for recursively-deleted >> devices: the whole tree is _first_ unrealized, _then_ unparented. >> Then device_unparent sees realized==false and fails to trigger >> the event. The solution is simply to move have_realized into >> the DeviceState struct. If device_add fails, we never set the >> new field to true and DEVICE_DELETED is not sent. >> >> Fixes qemu-iotests testcase 067. > > Suggest to add "Broken in commit 5942a19" here, to make it clear that > it's a recent regression.
I vaguely recall that something like this was in Bandan's RFC (that I assume the above commit forward-ported, the subject would be handy to mention too), but once again without any explanation why, so I saw no need to apply that during hardfreeze. Andreas >> Reported-by: Markus Armbruster <arm...@redhat.com> >> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> > Reviewed-by: Markus Armbruster <arm...@redhat.com> -- SUSE LINUX Products GmbH, Maxfeldstr. 5, 90409 Nürnberg, Germany GF: Jeff Hawn, Jennifer Guild, Felix Imendörffer; HRB 16746 AG Nürnberg