diff options
author | Paolo Bonzini | 2015-07-28 18:34:07 +0200 |
---|---|---|
committer | Stefan Hajnoczi | 2015-07-29 11:02:06 +0200 |
commit | fed105e2756dde98efa5e80baca02ae516dd1e51 (patch) | |
tree | 80e13014efc5aaf8c6dfaa4e1ac4b624efeebe6b /async.c | |
parent | Merge remote-tracking branch 'remotes/stefanha/tags/net-pull-request' into st... (diff) | |
download | qemu-fed105e2756dde98efa5e80baca02ae516dd1e51.tar.gz qemu-fed105e2756dde98efa5e80baca02ae516dd1e51.tar.xz qemu-fed105e2756dde98efa5e80baca02ae516dd1e51.zip |
virtio-blk-dataplane: delete bottom half before the AioContext is freed
Other uses of aio_bh_new are safe as long as all scheduled bottom
halves are run before an iothread is destroyed, which bdrv_drain will
ensure:
- archipelago_finish_aiocb: BH deletes itself
- inject_error: BH deletes itself
- blkverify_aio_bh: BH deletes itself
- abort_aio_request: BH deletes itself
- curl_aio_readv: BH deletes itself
- gluster_finish_aiocb: BH deletes itself
- bdrv_aio_rw_vector: BH deletes itself
- bdrv_co_maybe_schedule_bh: BH deletes itself
- iscsi_schedule_bh, iscsi_co_generic_cb: BH deletes itself
- laio_attach_aio_context: deleted in laio_detach_aio_context,
called through bdrv_detach_aio_context before deleting the iothread
- nfs_co_generic_cb: BH deletes itself
- null_aio_common: BH deletes itself
- qed_aio_complete: BH deletes itself
- rbd_finish_aiocb: BH deletes itself
- dma_blk_cb: BH deletes itself
- virtio_blk_dma_restart_cb: BH deletes itself
- qemu_bh_new: main loop AioContext is never destroyed
- test-aio.c: bh_delete_cb deletes itself, otherwise deleted in
the same function that calls aio_bh_new
Reported-by: Cornelia Huck <cornelia.huck@de.ibm.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Message-id: 1438101249-25166-2-git-send-email-pbonzini@redhat.com
Message-Id: <1438086628-13000-1-git-send-email-pbonzini@redhat.com>
Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com>
Diffstat (limited to 'async.c')
0 files changed, 0 insertions, 0 deletions