• K
    block: Ignore guest dev permissions during incoming migration · d35ff5e6
    Kevin Wolf 提交于
    Usually guest devices don't like other writers to the same image, so
    they use blk_set_perm() to prevent this from happening. In the migration
    phase before the VM is actually running, though, they don't have a
    problem with writes to the image. On the other hand, storage migration
    needs to be able to write to the image in this phase, so the restrictive
    blk_set_perm() call of qdev devices breaks it.
    
    This patch flags all BlockBackends with a qdev device as
    blk->disable_perm during incoming migration, which means that the
    requested permissions are stored in the BlockBackend, but not actually
    applied to its root node yet.
    
    Once migration has finished and the VM should be resumed, the
    permissions are applied. If they cannot be applied (e.g. because the NBD
    server used for block migration hasn't been shut down), resuming the VM
    fails.
    Signed-off-by: NKevin Wolf <kwolf@redhat.com>
    Tested-by: NKashyap Chamarthy <kchamart@redhat.com>
    d35ff5e6
block-backend.c 49.2 KB