qemu/block
Kevin Wolf ccb9dc1012 linux-aio: Cancel BH if not needed
linux-aio uses a BH in order to make sure that the remaining completions
are processed even in nested event loops of completion callbacks in
order to avoid deadlocks.

There is no need, however, to have the BH overhead for the first call
into qemu_laio_completion_bh() or after all pending completions have
already been processed. Therefore, this patch calls directly into
qemu_laio_completion_bh() in qemu_laio_completion_cb() and cancels
the BH after qemu_laio_completion_bh() has processed all pending
completions.

Signed-off-by: Kevin Wolf <kwolf@redhat.com>
Reviewed-by: Paolo Bonzini <pbonzini@redhat.com>
2016-06-16 15:19:55 +02:00
..
accounting.c block: Clean up includes 2016-01-20 13:36:23 +01:00
archipelago.c util: move declarations out of qemu-common.h 2016-03-22 22:20:17 +01:00
backup.c backup: Use BlockBackend for I/O 2016-05-25 19:04:21 +02:00
blkdebug.c util: move declarations out of qemu-common.h 2016-03-22 22:20:17 +01:00
blkreplay.c blkreplay: Convert to bdrv_co_pwrite_zeroes() 2016-06-08 10:21:08 +02:00
blkverify.c block: Propagate AioContext change to all children 2016-05-19 16:45:31 +02:00
block-backend.c block: Make blk_co_preadv/pwritev() public 2016-05-25 19:04:21 +02:00
bochs.c qemu-common: stop including qemu/bswap.h from qemu-common.h 2016-05-19 16:42:28 +02:00
cloop.c qemu-common: stop including qemu/bswap.h from qemu-common.h 2016-05-19 16:42:28 +02:00
commit.c commit: Use BlockBackend for I/O 2016-05-25 19:04:21 +02:00
crypto.c Block layer patches 2016-05-12 16:33:40 +01:00
curl.c block: always compile-check debug prints 2016-05-12 15:22:08 +02:00
dirty-bitmap.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
dmg.c all: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
gluster.c gluster: Convert to bdrv_co_pwrite_zeroes() 2016-06-08 10:21:08 +02:00
io.c block: Don't enforce 512 byte minimum alignment 2016-06-16 15:19:55 +02:00
iscsi.c iscsi: Convert to bdrv_co_pwrite_zeroes() 2016-06-08 10:21:08 +02:00
linux-aio.c linux-aio: Cancel BH if not needed 2016-06-16 15:19:55 +02:00
Makefile.objs replay: introduce block devices record/replay 2016-03-30 12:15:57 +02:00
mirror.c block: Byte-based bdrv_co_do_copy_on_readv() 2016-06-16 15:19:55 +02:00
nbd-client.c nbd: Simplify client FUA handling 2016-05-12 15:22:09 +02:00
nbd-client.h nbd: Simplify client FUA handling 2016-05-12 15:22:09 +02:00
nbd.c nbd: Simplify client FUA handling 2016-05-12 15:22:09 +02:00
nfs.c block/nfs: add missing #include "qemu/cutils.h" 2016-03-30 16:50:39 -04:00
null.c block/null-{co,aio}: Implement get_block_status() 2016-03-30 12:16:04 +02:00
parallels.c block: Switch bdrv_write_zeroes() to byte interface 2016-06-08 10:21:08 +02:00
qapi.c block: Don't return throttling info in query-named-block-nodes 2016-05-19 16:45:31 +02:00
qcow2-cache.c qcow2: avoid extra flushes in qcow2 2016-06-08 10:21:09 +02:00
qcow2-cluster.c qcow2: Implement .bdrv_co_pwritev() 2016-06-16 15:19:55 +02:00
qcow2-refcount.c qcow/qcow2: Use DIV_ROUND_UP 2016-06-07 18:19:24 +03:00
qcow2-snapshot.c qemu-common: stop including qemu/bswap.h from qemu-common.h 2016-05-19 16:42:28 +02:00
qcow2.c block: drop support for using qcow[2] encryption with system emulators 2016-06-16 15:19:55 +02:00
qcow2.h qcow2: Implement .bdrv_co_pwritev() 2016-06-16 15:19:55 +02:00
qcow.c block: drop support for using qcow[2] encryption with system emulators 2016-06-16 15:19:55 +02:00
qed-check.c qed: Use DIV_ROUND_UP 2016-06-07 18:19:24 +03:00
qed-cluster.c block: Clean up includes 2016-01-20 13:36:23 +01:00
qed-gencb.c block: Clean up includes 2016-01-20 13:36:23 +01:00
qed-l2-cache.c block: Clean up includes 2016-01-20 13:36:23 +01:00
qed-table.c qemu-common: stop including qemu/bswap.h from qemu-common.h 2016-05-19 16:42:28 +02:00
qed.c qed: Convert to bdrv_co_pwrite_zeroes() 2016-06-08 10:21:08 +02:00
qed.h util: move declarations out of qemu-common.h 2016-03-22 22:20:17 +01:00
quorum.c block: Propagate AioContext change to all children 2016-05-19 16:45:31 +02:00
raw_bsd.c raw_bsd: Convert to bdrv_co_pwrite_zeroes() 2016-06-08 10:21:08 +02:00
raw-aio.h raw-posix: Implement .bdrv_co_preadv/pwritev 2016-06-16 15:19:55 +02:00
raw-posix.c raw-posix: Implement .bdrv_co_preadv/pwritev 2016-06-16 15:19:55 +02:00
raw-win32.c util: move declarations out of qemu-common.h 2016-03-22 22:20:17 +01:00
rbd.c util: move declarations out of qemu-common.h 2016-03-22 22:20:17 +01:00
sheepdog.c block: Allow BDRV_REQ_FUA through blk_pwrite() 2016-05-12 15:22:08 +02:00
snapshot.c block: Fix bdrv_all_delete_snapshot() error handling 2016-06-08 10:21:09 +02:00
ssh.c include/qemu/osdep.h: Don't include qapi/error.h 2016-03-22 22:20:15 +01:00
stream.c stream: Use BlockBackend for I/O 2016-05-25 19:04:21 +02:00
throttle-groups.c block: Move I/O throttling configuration functions to BlockBackend 2016-05-19 16:45:30 +02:00
vdi.c qemu-common: stop including qemu/bswap.h from qemu-common.h 2016-05-19 16:42:28 +02:00
vhdx-endian.c qemu-common: stop including qemu/bswap.h from qemu-common.h 2016-05-19 16:42:28 +02:00
vhdx-log.c qemu-common: stop including qemu/bswap.h from qemu-common.h 2016-05-19 16:42:28 +02:00
vhdx.c all: Remove unnecessary glib.h includes 2016-06-07 18:19:24 +03:00
vhdx.h block: vhdx - update PAYLOAD_BLOCK_UNMAPPED value to match 1.00 spec 2014-12-12 15:42:22 +00:00
vmdk.c vmdk: Convert to bdrv_co_pwrite_zeroes() 2016-06-08 10:21:08 +02:00
vpc.c qemu-common: stop including qemu/bswap.h from qemu-common.h 2016-05-19 16:42:28 +02:00
vvfat.c block: Use DIV_ROUND_UP 2016-06-07 18:19:24 +03:00
win32-aio.c block: Clean up includes 2016-01-20 13:36:23 +01:00
write-threshold.c block: Clean up includes 2016-01-20 13:36:23 +01:00