The blockdev-snapshot-sync command uses bdrv_append() to update all parents to
point at the external snapshot node. This breaks BlockBackend's
blk_add/remove_aio_context_notifier(), which doesn't expect a BDS change.
Patch 1 fixes this by tracking AioContext notifiers in BlockBackend.
See the test case in Patch 2 for a reproducer.
Stefan Hajnoczi (2):
block: let blk_add/remove_aio_context_notifier() tolerate BDS changes
iotests: add 208 nbd-server + blockdev-snapshot-sync test case
block/block-backend.c | 63 ++++++++++++++++++++++++++++++++++++++++++++++
block/trace-events | 2 ++
tests/qemu-iotests/208 | 55 ++++++++++++++++++++++++++++++++++++++++
tests/qemu-iotests/208.out | 9 +++++++
tests/qemu-iotests/group | 1 +
5 files changed, 130 insertions(+)
create mode 100755 tests/qemu-iotests/208
create mode 100644 tests/qemu-iotests/208.out