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 |