Il 11/04/2012 12:40, Kevin Wolf ha scritto:
> @@ -816,6 +816,8 @@ void bdrv_close(BlockDriverState *bs)
> if (bs->job) {
> block_job_cancel_sync(bs->job);
> }
> + bdrv_drain_all();Actually the bdrv_drain_all needs to go first. This is because block_job_cancel_sync guarantees to exit only after the block job's own I/O has finished, *but* it needs to see all I/O from the guest. Paolo
