]> git.proxmox.com Git - mirror_qemu.git/commit
block: let stream blockjob run in BDS AioContext
authorStefan Hajnoczi <stefanha@redhat.com>
Tue, 21 Oct 2014 11:03:57 +0000 (12:03 +0100)
committerStefan Hajnoczi <stefanha@redhat.com>
Mon, 3 Nov 2014 11:41:49 +0000 (11:41 +0000)
commitf3e69beb942103ccd5248273e4d95e76b64ab64c
tree5d968e2229f8ab8785a7814a8f2bf488a1d4d79f
parent761731b1805f6ef64eb615e5b82a0801db3cde78
block: let stream blockjob run in BDS AioContext

The stream block job must run in the BlockDriverState AioContext so that
it works with dataplane.

The basics of acquiring the AioContext are easy in blockdev.c.

The tricky part is the completion code which drops part of the backing
file chain.  This must be done in the main loop where bdrv_unref() and
bdrv_close() are safe to call.  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-9-git-send-email-stefanha@redhat.com
block/stream.c
blockdev.c