aboutsummaryrefslogtreecommitdiff
path: root/monitor
diff options
context:
space:
mode:
authorKevin Wolf <kwolf@redhat.com>2019-12-17 15:06:38 +0100
committerKevin Wolf <kwolf@redhat.com>2019-12-19 18:04:25 +0100
commit7bb4941ace471fc7dd6ded4749b95b9622baa6ed (patch)
tree514dfbdd63c9eadd442a2fc2f04ec77cad1e80c4 /monitor
parent7fe6bb7a34599714afa8d4e5fac612ec1fdbdb5c (diff)
block: Activate recursively even for already active nodes
bdrv_invalidate_cache_all() assumes that all nodes in a given subtree are either active or inactive when it starts. Therefore, as soon as it arrives at an already active node, it stops. However, this assumption is wrong. For example, it's possible to take a snapshot of an inactive node, which results in an active overlay over an inactive backing file. The active overlay is probably also the root node of an inactive BlockBackend (blk->disable_perm == true). In this case, bdrv_invalidate_cache_all() does not need to do anything to activate the overlay node, but it still needs to recurse into the children and the parents to make sure that after returning success, really everything is activated. Cc: qemu-stable@nongnu.org Signed-off-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Max Reitz <mreitz@redhat.com>
Diffstat (limited to 'monitor')
0 files changed, 0 insertions, 0 deletions