diff options
Diffstat (limited to 'block/block-backend.c')
-rw-r--r-- | block/block-backend.c | 10 |
1 files changed, 9 insertions, 1 deletions
diff --git a/block/block-backend.c b/block/block-backend.c index 55efc735b4..d59f759daf 100644 --- a/block/block-backend.c +++ b/block/block-backend.c @@ -2018,7 +2018,15 @@ void blk_activate(BlockBackend *blk, Error **errp) return; } - bdrv_activate(bs, errp); + /* + * Migration code can call this function in coroutine context, so leave + * coroutine context if necessary. + */ + if (qemu_in_coroutine()) { + bdrv_co_activate(bs, errp); + } else { + bdrv_activate(bs, errp); + } } bool coroutine_fn blk_co_is_inserted(BlockBackend *blk) |