On 2018-03-06 21:48, Stefan Hajnoczi wrote: > Commit 2019ba0a0197 ("block: Add AioContextNotifier functions to BB") > added blk_add/remove_aio_context_notifier() and implemented them by > passing through the bdrv_*() equivalent. > > This doesn't work across bdrv_append(), which detaches child->bs and > re-attaches it to a new BlockDriverState. When > blk_remove_aio_context_notifier() is called we will access the new BDS > instead of the one where the notifier was added!
And nice that we just did not do anything if there was no BDS (in practice that can never happen, but still nice). Also, I like your exclamation mark. It makes this sound so excited! :D > From the point of view of the blk_*() API user, changes to the root BDS > should be transparent. > > This patch maintains a list of AioContext notifiers in BlockBackend and > adds/removes them from the BlockDriverState as needed. > > Reported-by: Stefano Panella <spane...@gmail.com> > Cc: Max Reitz <mre...@redhat.com> > Signed-off-by: Stefan Hajnoczi <stefa...@redhat.com> > --- > block/block-backend.c | 63 > +++++++++++++++++++++++++++++++++++++++++++++++++++ > block/trace-events | 2 ++ > 2 files changed, 65 insertions(+) Reviewed-by: Max Reitz <mre...@redhat.com>
Description: OpenPGP digital signature