xemu/block
MORITA Kazutaka 6d1acda8f1 sheepdog: fix co_recv coroutine context
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>
2012-02-09 16:17:51 +01:00
..
blkdebug.c block: replace unchecked strdup/malloc/calloc with glib 2012-01-26 11:39:03 +01:00
blkverify.c block: replace unchecked strdup/malloc/calloc with glib 2012-01-26 11:39:03 +01:00
bochs.c block: take lock around bdrv_read implementations 2011-10-21 17:34:14 +02:00
cloop.c block/cloop: Use g_free instead of free 2011-11-04 14:24:12 +01:00
cow.c block/cow: Return real error code 2011-12-15 12:40:33 +01:00
curl.c block: qemu_aio_get does not return NULL 2011-12-15 12:40:08 +01:00
dmg.c block: take lock around bdrv_read implementations 2011-10-21 17:34:14 +02:00
iscsi.c iSCSI: add configuration variables for iSCSI 2012-02-09 16:17:50 +01:00
nbd.c nbd: add support for NBD_CMD_TRIM 2011-12-22 11:53:57 +01:00
parallels.c block: take lock around bdrv_read implementations 2011-10-21 17:34:14 +02:00
qcow2-cache.c Use glib memory allocation and free functions 2011-08-20 23:01:08 -05:00
qcow2-cluster.c qcow2: avoid reentrant bdrv_read() in copy_sectors() 2011-12-05 14:49:47 +01:00
qcow2-refcount.c qcow2: Fix order of refcount updates in qcow2_snapshot_goto 2011-12-05 14:51:36 +01:00
qcow2-snapshot.c qcow2: Allow >4 GB VM state 2011-12-15 12:40:33 +01:00
qcow2.c qcow2: Keep unknown header extension when rewriting header 2012-02-09 16:17:51 +01:00
qcow2.h qcow2: Keep unknown header extension when rewriting header 2012-02-09 16:17:51 +01:00
qcow.c qcow: Use bdrv functions to replace file operation 2012-01-26 14:49:18 +01:00
qed-check.c Use glib memory allocation and free functions 2011-08-20 23:01:08 -05:00
qed-cluster.c Use glib memory allocation and free functions 2011-08-20 23:01:08 -05:00
qed-gencb.c Use glib memory allocation and free functions 2011-08-20 23:01:08 -05:00
qed-l2-cache.c Use glib memory allocation and free functions 2011-08-20 23:01:08 -05:00
qed-table.c block: bdrv_aio_* do not return NULL 2011-12-15 12:40:07 +01:00
qed.c qed: add .bdrv_co_write_zeroes() support 2012-02-09 16:17:50 +01:00
qed.h qed: add .bdrv_co_write_zeroes() support 2012-02-09 16:17:50 +01:00
raw-posix-aio.h prepare for future GPLv2+ relicensing 2012-01-13 10:55:56 -06:00
raw-posix.c fix spelling in block sub directory 2011-12-02 10:50:57 +00:00
raw-win32.c block: Rename bdrv_co_flush to bdrv_co_flush_to_disk 2011-11-11 14:02:59 +01:00
raw.c block: Rename bdrv_co_flush to bdrv_co_flush_to_disk 2011-11-11 14:02:59 +01:00
rbd.c rbd: wire up snapshot removal and rollback functionality 2012-01-26 11:39:03 +01:00
sheepdog.c sheepdog: fix co_recv coroutine context 2012-02-09 16:17:51 +01:00
stream.c block: add support for partial streaming 2012-01-26 14:49:18 +01:00
vdi.c block/vdi: Zero unused parts when allocating a new block (fix #919242) 2012-01-26 14:49:18 +01:00
vmdk.c block: convert qcow2, qcow2, and vmdk to .bdrv_co_is_allocated() 2011-12-05 14:51:37 +01:00
vpc.c vpc: Round up image size during fixed image creation 2012-02-09 16:17:51 +01:00
vvfat.c vvfat: avoid leaking file descriptor in commit_one_file() 2012-01-13 10:36:59 +00:00