OSDN Git Service

block/copy-on-read: Fix permissions for inactive node
authorKevin Wolf <kwolf@redhat.com>
Mon, 29 Jul 2019 10:45:14 +0000 (12:45 +0200)
committerKevin Wolf <kwolf@redhat.com>
Tue, 30 Jul 2019 10:25:43 +0000 (12:25 +0200)
commit2b23f28639c9ed3d4cdb1262b3e41b6b81be5e0b
tree863ffb0e25adea0678d8c37860ae143243df47fb
parent251071e0c0a0121e46fb1cc9c7a7fffba8dbbcd4
block/copy-on-read: Fix permissions for inactive node

The copy-on-read drive must not request the WRITE_UNCHANGED permission
for its child if the node is inactive, otherwise starting a migration
destination with -incoming will fail because the child cannot provide
write access yet:

  qemu-system-x86_64: -blockdev copy-on-read,file=img,node-name=cor: Block node is read-only

Earlier QEMU versions additionally ran into an abort() on the migration
source side: bdrv_inactivate_recurse() failed to update permissions.
This is silently ignored today because it was only supposed to loosen
restrictions. This is the symptom that was originally reported here:

  https://bugzilla.redhat.com/show_bug.cgi?id=1733022

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
block/copy-on-read.c