• P
    virtio-blk-dataplane: delete bottom half before the AioContext is freed · fed105e2
    Paolo Bonzini 提交于
    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: NCornelia Huck <cornelia.huck@de.ibm.com>
    Signed-off-by: NPaolo 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: NStefan Hajnoczi <stefanha@redhat.com>
    fed105e2
virtio-blk.c 10.6 KB