dec7d421f8
Block jobs will run in the BlockDriverState's AioContext, which may not always be the QEMU main loop. There are some block layer APIs that are either not thread-safe or risk lock ordering problems. This includes bdrv_unref(), bdrv_close(), and anything that calls bdrv_drain_all(). The block_job_defer_to_main_loop() API allows a block job to schedule a function to run in the main loop with the BlockDriverState AioContext held. This function will be used to perform cleanup and backing chain manipulations in block jobs. Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Reviewed-by: Max Reitz <mreitz@redhat.com> Message-id: 1413889440-32577-6-git-send-email-stefanha@redhat.com |
||
---|---|---|
.. | ||
accounting.h | ||
aio.h | ||
block_int.h | ||
block.h | ||
blockjob.h | ||
coroutine_int.h | ||
coroutine.h | ||
nbd.h | ||
qapi.h | ||
scsi.h | ||
snapshot.h | ||
thread-pool.h |