This fixes bdrv_invalidate_cache_all() for some kinds of graphs where part of the nodes are active and others are inactive. This is a scenario that happens when libvirt takes an external snapshot with VM state.
This was reported in: https://bugzilla.redhat.com/show_bug.cgi?id=1781637 ('qemu crashed when do mem and disk snapshot') Based-on: <20191216170857.11880-1-kw...@redhat.com> ('iotests: Remove duplicated blockdev_create()') Kevin Wolf (3): block: Activate recursively even for already active nodes hmp: Allow using qdev ID for qemu-io command iotests: Test external snapshot with VM state block.c | 50 +++++++++++------------ monitor/hmp-cmds.c | 28 ++++++++----- hmp-commands.hx | 8 ++-- tests/qemu-iotests/280 | 83 ++++++++++++++++++++++++++++++++++++++ tests/qemu-iotests/280.out | 50 +++++++++++++++++++++++ tests/qemu-iotests/group | 1 + 6 files changed, 181 insertions(+), 39 deletions(-) create mode 100755 tests/qemu-iotests/280 create mode 100644 tests/qemu-iotests/280.out -- 2.20.1