On Wed, Aug 27, 2014 at 10:49:12AM +0800, Fam Zheng wrote:
> @@ -110,6 +109,22 @@ static void qemu_laio_completion_cb(EventNotifier *e)
> }
> }
>
> +static void laio_cancel_async(BlockDriverAIOCB *blockacb)
> +{
> +struct qemu_laiocb *laiocb = (struct qemu_laiocb *)blockacb;
> +stru
Just call io_cancel (2), if it fails, it means the request is not
canceled, so the event loop will eventually call
qemu_laio_process_completion.
In qemu_laio_process_completion, change to call the cb unconditionally.
It is required by .cancel_async, and also acceptable by .cancel.
Signed-off-by: