[Sheepdog] [Qemu-devel] coroutine bug?, was Re: [PATCH] sheepdog: use coroutines
MORITA Kazutaka
morita.kazutaka at lab.ntt.co.jp
Fri Jan 6 12:21:30 CET 2012
At Fri, 06 Jan 2012 20:16:16 +0900,
MORITA Kazutaka wrote:
> Thanks for your detailed explanation. I confirmed the following hack
> fixes this problem.
>
> ---8<---
> diff --git a/block/sheepdog.c b/block/sheepdog.c
> index 17a79be..b27c770 100644
> --- a/block/sheepdog.c
> +++ b/block/sheepdog.c
> @@ -626,6 +626,9 @@ static void coroutine_fn aio_read_response(void *opaque)
>
> switch (acb->aiocb_type) {
> case AIOCB_WRITE_UDATA:
> + /* this coroutine context is no longer suitable for co_recv
> + * because we may send data to update vdi objects */
> + s->co_recv = NULL;
> if (!is_data_obj(aio_req->oid)) {
> break;
> }
> ---8<---
I've pushed this fix to git://github.com/collie/qemu.git
Please use this tree until I create a coroutine based sheepdog driver.
Thanks,
Kazutaka
More information about the sheepdog
mailing list