Andreas Färber <afaer...@suse.de> writes: > 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.
Thanks for pointing it out, yes, I believe that my RFC had this case covered. (For historical accuracy) Can we please include a link to the RFC in the commit message ? Thanks, Bandan > Andreas > >>> Reported-by: Markus Armbruster <arm...@redhat.com> >>> Signed-off-by: Paolo Bonzini <pbonz...@redhat.com> >> Reviewed-by: Markus Armbruster <arm...@redhat.com>