aboutsummaryrefslogtreecommitdiff
path: root/blockdev.c
diff options
context:
space:
mode:
authorMax Reitz <mreitz@redhat.com>2016-06-10 20:57:46 +0200
committerMax Reitz <mreitz@redhat.com>2016-06-16 15:20:37 +0200
commit9bd910e2cbe413ab5927068bf189e929cb6790bc (patch)
tree3fc6200baa141e7a361d3fe927be7d826ea90b22 /blockdev.c
parent87cd3d20e1e9b31315bf416d6e720cf7e3eb2ea9 (diff)
downloadqemu-9bd910e2cbe413ab5927068bf189e929cb6790bc.zip
qemu-9bd910e2cbe413ab5927068bf189e929cb6790bc.tar.gz
qemu-9bd910e2cbe413ab5927068bf189e929cb6790bc.tar.bz2
block: Allow replacement of a BDS by its overlay
change_parent_backing_link() asserts that the BDS to be replaced is not used as a backing file. However, we may want to replace a BDS by its overlay in which case that very link should not be redirected. For instance, when doing a sync=none drive-mirror operation, we may have the following BDS/BB forest before block job completion: target base <- source <- BlockBackend During job completion, we want to establish the source BDS as the target's backing node: target | v base <- source <- BlockBackend This makes the target a valid replacement for the source: target <- BlockBackend | v base <- source Without this modification to change_parent_backing_link() we have to inject the target into the graph before the source is its backing node, thus temporarily creating a wrong graph: target <- BlockBackend base <- source Signed-off-by: Max Reitz <mreitz@redhat.com> Message-id: 20160610185750.30956-2-mreitz@redhat.com Reviewed-by: Kevin Wolf <kwolf@redhat.com> Reviewed-by: Fam Zheng <famz@redhat.com> Signed-off-by: Max Reitz <mreitz@redhat.com>
Diffstat (limited to 'blockdev.c')
0 files changed, 0 insertions, 0 deletions