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

Reply via email to