qemu-e2k/block
Kevin Wolf 5ad81b4946 nbd: Restrict connection_co reentrance
nbd_client_attach_aio_context() schedules connection_co in the new
AioContext and this way reenters it in any arbitrary place that has
yielded. We can restrict this a bit to the function call where the
coroutine actually sits waiting when it's idle.

This doesn't solve any bug yet, but it shows where in the code we need
to support this random reentrance and where we don't have to care.

Add FIXME comments for the existing bugs that the rest of this series
will fix.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
2019-02-25 15:03:19 +01:00
..
accounting.c
backup.c Revert "hbitmap: Add @advance param to hbitmap_iter_next()" 2019-01-15 18:26:50 -05:00
blkdebug.c
blklogwrites.c block: Replace qdict_put() by qdict_put_obj() where appropriate 2019-02-01 13:46:44 +01:00
blkreplay.c
blkverify.c
block-backend.c block-backend: Make blk_inc/dec_in_flight public 2019-02-25 15:03:19 +01:00
bochs.c avoid TABs in files that only contain a few 2019-01-11 15:46:56 +01:00
cloop.c
commit.c commit: Replace commit_top_bs on failure after deleting the block job 2019-02-25 15:03:19 +01:00
copy-on-read.c
create.c
crypto.c bdrv_query_image_info Error parameter added 2019-02-11 14:35:43 -06:00
crypto.h
curl.c block/curl: Convert from DPRINTF() macro to trace events 2019-01-31 00:38:19 +01:00
dirty-bitmap.c block/dirty-bitmap: Documentation and Comment fixups 2019-02-19 17:49:43 -05:00
dmg-bz2.c
dmg-lzfse.c block: adding lzfse decompressing support as a module. 2018-12-14 11:52:40 +01:00
dmg.c dmg: don't skip zero chunk 2019-01-04 11:15:09 +00:00
dmg.h dmg: including dmg-lzfse module inside dmg block driver. 2018-12-14 11:52:40 +01:00
file-posix.c block/file-posix: Convert from DPRINTF() macro to trace events 2019-01-31 00:38:19 +01:00
file-win32.c avoid TABs in files that only contain a few 2019-01-11 15:46:56 +01:00
gluster.c qemu/queue.h: leave head structs anonymous unless necessary 2019-01-11 15:46:55 +01:00
io.c block: Fix hangs in synchronous APIs with iothreads 2019-02-01 13:46:44 +01:00
iscsi-opts.c
iscsi.c block: Work-around a bug in libiscsi 1.9.0 when used in gnu99 mode 2019-01-22 06:26:32 +01:00
linux-aio.c avoid TABs in files that only contain a few 2019-01-11 15:46:56 +01:00
Makefile.objs configure: adding support to lzfse library. 2018-12-14 11:52:40 +01:00
mirror.c mirror: Block the source BlockDriverState in mirror_start_job() 2019-02-01 13:46:44 +01:00
nbd-client.c nbd: Restrict connection_co reentrance 2019-02-25 15:03:19 +01:00
nbd-client.h nbd: Restrict connection_co reentrance 2019-02-25 15:03:19 +01:00
nbd.c block/nbd: move connection code from block/nbd to block/nbd-client 2019-02-04 15:11:27 -06:00
nfs.c
null.c
nvme.c block: Fix hangs in synchronous APIs with iothreads 2019-02-01 13:46:44 +01:00
parallels.c
parallels.h
qapi.c bdrv_query_image_info Error parameter added 2019-02-11 14:35:43 -06:00
qcow2-bitmap.c qcow2: Add list of bitmaps to ImageInfoSpecificQCow2 2019-02-11 14:35:43 -06:00
qcow2-cache.c
qcow2-cluster.c avoid TABs in files that only contain a few 2019-01-11 15:46:56 +01:00
qcow2-refcount.c qcow2: Assert that refcount block offsets fit in the refcount table 2019-02-01 13:46:44 +01:00
qcow2-snapshot.c qcow2-snapshot: remove redundant find_snapshot_by_id_and_name call 2019-02-25 15:03:19 +01:00
qcow2.c qcow2: Add list of bitmaps to ImageInfoSpecificQCow2 2019-02-11 14:35:43 -06:00
qcow2.h qcow2: Add list of bitmaps to ImageInfoSpecificQCow2 2019-02-11 14:35:43 -06:00
qcow.c crypto: support multiple threads accessing one QCryptoBlock 2018-12-12 11:16:49 +00:00
qed-check.c
qed-cluster.c
qed-l2-cache.c
qed-table.c
qed.c block: Fix hangs in synchronous APIs with iothreads 2019-02-01 13:46:44 +01:00
qed.h
quorum.c
raw-format.c
rbd.c
replication.c block: Remove flags parameter from bdrv_reopen_queue() 2018-12-14 11:55:02 +01:00
sheepdog.c block/sheepdog: Convert from DPRINTF() macro to trace events 2019-01-31 00:38:19 +01:00
snapshot.c block/snapshot: remove bdrv_snapshot_delete_by_id_or_name 2019-02-25 15:03:18 +01:00
ssh.c block/ssh: Convert from DPRINTF() macro to trace events 2019-01-31 00:38:19 +01:00
stream.c block: Use bdrv_reopen_set_read_only() in stream_start/complete() 2018-12-14 11:55:02 +01:00
throttle-groups.c throttle-groups: fix restart coroutine iothread race 2019-01-24 10:02:28 +00:00
throttle.c
trace-events block/sheepdog: Convert from DPRINTF() macro to trace events 2019-01-31 00:38:19 +01:00
vdi.c block: Eliminate the S_1KiB, S_2KiB, ... macros 2019-02-01 13:46:45 +01:00
vhdx-endian.c
vhdx-log.c
vhdx.c
vhdx.h qemu/queue.h: leave head structs anonymous unless necessary 2019-01-11 15:46:55 +01:00
vmdk.c bdrv_query_image_info Error parameter added 2019-02-11 14:35:43 -06:00
vpc.c block/vpc: Don't take address of fields in packed structs 2019-02-01 13:46:44 +01:00
vvfat.c vvfat: Fix memory leak 2018-11-19 12:51:40 +01:00
vxhs.c
win32-aio.c
write-threshold.c