From: Alberto Garcia <be...@igalia.com> Use block_job_add_bdrv() instead of blocking all operations in mirror_start_job() and unblocking them in mirror_exit().
Signed-off-by: Alberto Garcia <be...@igalia.com> Reviewed-by: Kevin Wolf <kw...@redhat.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> --- block/mirror.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/block/mirror.c b/block/mirror.c index 3a0788e..04765ad 100644 --- a/block/mirror.c +++ b/block/mirror.c @@ -530,7 +530,6 @@ static void mirror_exit(BlockJob *job, void *opaque) aio_context_release(replace_aio_context); } g_free(s->replaces); - bdrv_op_unblock_all(target_bs, s->common.blocker); blk_unref(s->target); s->target = NULL; block_job_completed(&s->common, data->ret); @@ -997,7 +996,7 @@ static void mirror_start_job(const char *job_id, BlockDriverState *bs, return; } - bdrv_op_block_all(target, s->common.blocker); + block_job_add_bdrv(&s->common, target); s->common.co = qemu_coroutine_create(mirror_run, s); trace_mirror_start(bs, s, s->common.co, opaque); -- 1.8.3.1