The co_recv coroutine has two things that will try to enter it: 1. The select(2) read callback on the sheepdog socket. 2. The aio_add_request() blocking operations, including a coroutine mutex. This patch fixes it by setting NULL to co_recv before sending data. In future, we should make the sheepdog driver fully coroutine-based and simplify request handling. Signed-off-by: MORITA Kazutaka <morita.kazutaka@lab.ntt.co.jp> Signed-off-by: Kevin Wolf <kwolf@redhat.com> |
||
---|---|---|
.. | ||
blkdebug.c | ||
blkverify.c | ||
bochs.c | ||
cloop.c | ||
cow.c | ||
curl.c | ||
dmg.c | ||
iscsi.c | ||
nbd.c | ||
parallels.c | ||
qcow.c | ||
qcow2-cache.c | ||
qcow2-cluster.c | ||
qcow2-refcount.c | ||
qcow2-snapshot.c | ||
qcow2.c | ||
qcow2.h | ||
qed-check.c | ||
qed-cluster.c | ||
qed-gencb.c | ||
qed-l2-cache.c | ||
qed-table.c | ||
qed.c | ||
qed.h | ||
raw-posix-aio.h | ||
raw-posix.c | ||
raw-win32.c | ||
raw.c | ||
rbd.c | ||
sheepdog.c | ||
stream.c | ||
vdi.c | ||
vmdk.c | ||
vpc.c | ||
vvfat.c |