mirror of
https://github.com/Motorhead1991/qemu.git
synced 2026-01-04 05:30:31 -07:00
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.h | ||
| block_int.h | ||
| blockjob.h | ||
| coroutine.h | ||
| coroutine_int.h | ||
| nbd.h | ||
| qapi.h | ||
| scsi.h | ||
| snapshot.h | ||
| thread-pool.h | ||