No description
Find a file
Stefan Hajnoczi 9e85cd5ce0 block: let commit blockjob run in BDS AioContext
The commit block job must run in the BlockDriverState AioContext so that
it works with dataplane.

Acquire the AioContext in blockdev.c so starting the block job is safe.
One detail here is that the bdrv_drain_all() must be moved inside the
aio_context_acquire() region so requests cannot sneak in between the
drain and acquire.

The completion code in block/commit.c must perform backing chain
manipulation and bdrv_reopen() from the main loop.  Use
block_job_defer_to_main_loop() to achieve that.

Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Reviewed-by: Max Reitz <mreitz@redhat.com>
Message-id: 1413889440-32577-11-git-send-email-stefanha@redhat.com
2014-11-03 11:41:49 +00:00
audio
backends
block block: let commit blockjob run in BDS AioContext 2014-11-03 11:41:49 +00:00
bsd-user
default-configs
disas disas/libvixl/a64/instructions-a64.h: Remove unused constants 2014-10-24 12:19:12 +01:00
docs virtio-scsi fixes, the first part of dynamic sysbus devices, 2014-10-30 13:35:12 +00:00
dtc@bc895d6d09
fpu softfloat: add functions corresponding to IEEE-2008 min/maxNumMag 2014-10-14 13:28:51 +01:00
fsdev
gdb-xml
hw ahci: Fix SDB FIS Construction 2014-11-03 09:48:41 +00:00
include block: add bdrv_drain() 2014-11-03 11:41:49 +00:00
libcacard libcacard: don't free sign buffer while sign op is pending 2014-10-28 11:38:18 +01:00
libdecnumber
linux-headers linux-headers: update to 3.17-rc7 2014-10-10 10:37:47 +02:00
linux-user translate-all.c: memory walker initial address miscalculation 2014-10-06 21:53:35 +03:00
net
pc-bios linuxboot: compute initrd loading address 2014-10-09 15:36:15 +02:00
pixman@87eea99e44
po po: fix conflict with %.mo rule in rules.mak 2014-09-26 13:35:08 +02:00
qapi blockjob: Add "ready" field 2014-11-03 11:41:48 +00:00
qga qga: Rewrite code where using readdir_r 2014-10-22 07:49:52 -05:00
qobject
qom qom: Demote already-has-a-parent to a regular error 2014-10-23 16:41:25 +02:00
roms
scripts get_maintainer.pl: restrict cases where it falls back to --git 2014-10-23 16:41:27 +02:00
slirp
stubs block: Code motion to get rid of stubs/blockdev.c 2014-10-20 13:41:26 +02:00
sysconfigs/target
target-alpha
target-arm target-arm: A32: Emulate the SMC instruction 2014-10-24 12:19:15 +01:00
target-cris gdbstub: Allow target CPUs to specify watchpoint STOP_BEFORE_ACCESS flag 2014-10-06 14:25:43 +01:00
target-i386 target-i386: add Intel AVX-512 support 2014-10-24 18:03:14 +02:00
target-lm32 gdbstub: Allow target CPUs to specify watchpoint STOP_BEFORE_ACCESS flag 2014-10-06 14:25:43 +01:00
target-m68k
target-microblaze
target-mips target-mips: add ULL suffix in bitswap to avoid compiler warning 2014-10-24 14:07:51 +01:00
target-moxie
target-openrisc
target-ppc qdev: Drop legacy_name from qdev properties 2014-10-15 05:03:15 +02:00
target-s390x s390x/migration: migrate CPU state 2014-10-10 13:31:51 +02:00
target-sh4
target-sparc
target-tricore target-tricore: Add instructions of BO opcode format 2014-10-20 12:25:07 +01:00
target-unicore32
target-xtensa gdbstub: Allow target CPUs to specify watchpoint STOP_BEFORE_ACCESS flag 2014-10-06 14:25:43 +01:00
tcg tcg/mips: fix store softmmu slow path 2014-11-02 13:30:00 +01:00
tests iotests: Expand test 061 2014-11-03 11:41:49 +00:00
trace trace: [hmp] Reimplement "trace-event" and "info trace-events" using QMP 2014-09-26 09:34:38 +01:00
ui vnc: return directly if no vnc client connected 2014-10-30 18:21:25 +00:00
util Four changes here. Polling for reconnection of character devices, 2014-10-09 15:09:05 +01:00
.exrc
.gitignore
.gitmodules
.mailmap
.travis.yml .travis.yml: remove "make check" from main matrix 2014-09-26 21:05:06 +04:00
accel.c accel: Create accel object when initializing machine 2014-10-09 15:36:14 +02:00
aio-posix.c
aio-win32.c
arch_init.c migration: catch unknown flag combinations in ram_load 2014-10-14 11:24:20 +02:00
async.c
balloon.c
block-migration.c block: Rename BlockDriverAIOCB* to BlockAIOCB* 2014-10-20 13:41:27 +02:00
block.c block: let mirror blockjob run in BDS AioContext 2014-11-03 11:41:49 +00:00
blockdev-nbd.c
blockdev.c block: let commit blockjob run in BDS AioContext 2014-11-03 11:41:49 +00:00
blockjob.c blockjob: add block_job_defer_to_main_loop() 2014-11-03 11:41:49 +00:00
bootdevice.c bootindex: change fprintf to error_report 2014-10-15 10:46:01 +02:00
bt-host.c
bt-vhci.c
Changelog
CODING_STYLE
configure configure: Prepend pixman and ftd flags to overrule system-provided ones 2014-10-15 12:20:27 +02:00
COPYING
COPYING.LIB
coroutine-gthread.c
coroutine-sigaltstack.c
coroutine-ucontext.c
coroutine-win32.c
cpu-exec.c cpu-exec: Do CPU_INTERRUPT_HALT unconditionally 2014-09-25 18:54:22 +01:00
cpus.c
cputlb.c
device-hotplug.c blockdev: Eliminate drive_del() 2014-10-20 13:41:26 +02:00
device_tree.c
disas.c
dma-helpers.c hw: Convert from BlockDriverState to BlockBackend, mostly 2014-10-20 14:02:25 +02:00
dump.c dump: Turn some functions to void to make code cleaner 2014-10-23 09:01:29 -04:00
exec.c
gdbstub.c gdbstub: Allow target CPUs to specify watchpoint STOP_BEFORE_ACCESS flag 2014-10-06 14:25:43 +01:00
HACKING
hmp-commands.hx hmp: Remove "info pcmcia" 2014-10-24 12:19:11 +01:00
hmp.c Add HMP command "info memory-devices" 2014-09-26 13:37:06 -04:00
hmp.h Add HMP command "info memory-devices" 2014-09-26 13:37:06 -04:00
iohandler.c
ioport.c
iothread.c
kvm-all.c kvm fix compilation with GCC 4.3.4 2014-10-10 14:07:08 +01:00
kvm-stub.c accel: Move KVM accel registration to kvm-all.c 2014-10-04 08:59:15 +02:00
LICENSE
main-loop.c Revert "main-loop.c: Handle SIGINT, SIGHUP and SIGTERM synchronously" 2014-10-27 15:05:09 +00:00
MAINTAINERS virtio-scsi fixes, the first part of dynamic sysbus devices, 2014-10-30 13:35:12 +00:00
Makefile trace: install trace-events file 2014-09-26 09:34:39 +01:00
Makefile.objs qemu-file: Move stdio implementation to qemu-file-stdio.c 2014-10-14 10:29:28 +02:00
Makefile.target bootdevice: move bootdevice related code to new file bootdevice.c 2014-10-15 09:49:48 +02:00
memory.c
memory_mapping.c
migration-exec.c
migration-fd.c
migration-rdma.c
migration-tcp.c qemu-sockets: Add error to non-blocking connect handler 2014-10-09 15:36:15 +02:00
migration-unix.c qemu-sockets: Add error to non-blocking connect handler 2014-10-09 15:36:15 +02:00
migration.c block/migration: Disable cache invalidate for incoming migration 2014-10-14 09:35:21 +02:00
module-common.c
monitor.c hmp: Remove "info pcmcia" 2014-10-24 12:19:11 +01:00
nbd.c block/migration: Disable cache invalidate for incoming migration 2014-10-14 09:35:21 +02:00
numa.c
os-posix.c os-posix: report error message when lock file failed 2014-09-26 21:21:09 +04:00
os-win32.c
page_cache.c
qapi-schema.json qmp: Print descriptions of object properties 2014-10-15 05:03:15 +02:00
qdev-monitor.c qmp: Print descriptions of object properties 2014-10-15 05:03:15 +02:00
qdict-test-data.txt
qemu-bridge-helper.c
qemu-char.c qemu-char: Fix reconnect socket error reporting 2014-10-09 15:36:15 +02:00
qemu-coroutine-io.c
qemu-coroutine-lock.c
qemu-coroutine-sleep.c
qemu-coroutine.c
qemu-doc.texi
qemu-file-stdio.c qemu-file: Move stdio implementation to qemu-file-stdio.c 2014-10-14 10:29:28 +02:00
qemu-file-unix.c qemu-file: Move unix and socket implementations to qemu-file-unix.c 2014-10-14 10:29:28 +02:00
qemu-file.c qemu-file: Move stdio implementation to qemu-file-stdio.c 2014-10-14 10:29:28 +02:00
qemu-img-cmds.hx qemu-img: Add progress output for amend 2014-11-03 11:41:48 +00:00
qemu-img.c qemu-img: Fix insignificant memleak 2014-11-03 11:41:49 +00:00
qemu-img.texi qemu-img: Add progress output for amend 2014-11-03 11:41:48 +00:00
qemu-io-cmds.c qemu-io: Respect early image end for map 2014-10-23 15:34:02 +02:00
qemu-io.c block: Make BlockBackend own its BlockDriverState 2014-10-20 13:41:26 +02:00
qemu-log.c
qemu-nbd.c block: Make BlockBackend own its BlockDriverState 2014-10-20 13:41:26 +02:00
qemu-nbd.texi
qemu-options-wrapper.h
qemu-options.h
qemu-options.hx aio / timers: De-document -clock 2014-10-27 16:11:45 +01:00
qemu-seccomp.c
qemu-tech.texi
qemu-timer.c
qemu.nsi
qemu.sasl
qmp-commands.hx add input-send-event command 2014-10-02 09:58:14 +02:00
qmp.c qmp: Print descriptions of object properties 2014-10-15 05:03:15 +02:00
qtest.c qtest: fix qtest log fd should be initialized before qtest chardev 2014-10-23 16:41:27 +02:00
README
rules.mak
savevm.c snapshot: Reset err to NULL to avoid double free 2014-11-03 09:48:41 +00:00
softmmu_template.h
spice-qemu-char.c
tcg-runtime.c
tci.c
thread-pool.c block: Rename BlockDriverCompletionFunc to BlockCompletionFunc 2014-10-20 13:41:27 +02:00
thunk.c
tpm.c
trace-events hw: Convert from BlockDriverState to BlockBackend, mostly 2014-10-20 14:02:25 +02:00
translate-all.c translate-all.c: memory walker initial address miscalculation 2014-10-06 21:53:35 +03:00
translate-all.h
user-exec.c
VERSION
version.rc
vl.c Make qemu_shutdown_requested signal-safe 2014-10-27 14:09:27 +00:00
vmstate.c vmstate: Allow dynamic allocation for VBUFFER during migration 2014-10-14 09:35:48 +02:00
xbzrle.c
xen-common-stub.c accel: Move Xen registration code to xen-common.c 2014-10-04 08:59:15 +02:00
xen-common.c accel: Pass MachineState object to accel init functions 2014-10-09 12:57:10 +02:00
xen-hvm-stub.c
xen-hvm.c xen-hvm.c: Add support for Xen access to vmport 2014-10-30 14:16:38 +00:00
xen-mapcache.c

Read the documentation in qemu-doc.html or on http://wiki.qemu-project.org

- QEMU team