On 17/12/2015 03:14, Fam Zheng wrote: > @@ -388,7 +390,9 @@ static void mirror_exit(BlockJob *job, void *opaque) > bdrv_unref(s->target); > block_job_completed(&s->common, data->ret); > g_free(data); > - bdrv_drained_end(src); > + if (drained_begin) { > + bdrv_drained_end(src); > + } > bdrv_unref(src); > } > > @@ -571,6 +575,7 @@ static void coroutine_fn mirror_run(void *opaque) > */ > assert(QLIST_EMPTY(&bs->tracked_requests)); > s->common.cancelled = false; > + s->drained_begin = true; > break; > } > bdrv_drained_end(s->common.bs); >
Good point, thanks! Paolo