diff options
author | Lukas Straub <lukasstraub2@web.de> | 2021-07-18 16:48:33 +0200 |
---|---|---|
committer | Kevin Wolf <kwolf@redhat.com> | 2021-07-20 16:11:53 +0200 |
commit | 3b78420bb14f7e439a079aee28eeec997a229c5e (patch) | |
tree | 86cea7550198c3219206d9f8691a5a32080a8fd9 /scripts | |
parent | a990a42b39338ffd12fb9640d792276313f75ed5 (diff) | |
download | qemu-3b78420bb14f7e439a079aee28eeec997a229c5e.zip qemu-3b78420bb14f7e439a079aee28eeec997a229c5e.tar.gz qemu-3b78420bb14f7e439a079aee28eeec997a229c5e.tar.bz2 |
replication: Properly attach children
The replication driver needs access to the children block-nodes of
it's child so it can issue bdrv_make_empty() and bdrv_co_pwritev()
to manage the replication. However, it does this by directly copying
the BdrvChilds, which is wrong.
Fix this by properly attaching the block-nodes with
bdrv_attach_child() and requesting the required permissions.
This ultimatively fixes a potential crash in replication_co_writev(),
because it may write to s->secondary_disk if it is in state
BLOCK_REPLICATION_FAILOVER_FAILED, without requesting write
permissions first. And now the workaround in
secondary_do_checkpoint() can be removed.
Signed-off-by: Lukas Straub <lukasstraub2@web.de>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <5d0539d729afb8072d0d7cde977c5066285591b4.1626619393.git.lukasstraub2@web.de>
Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Diffstat (limited to 'scripts')
0 files changed, 0 insertions, 0 deletions