tracked_request_begin() is called for most I/O operations, so it's a good place to assert that we're indeed running in the home thread of the node's AioContext.
Signed-off-by: Kevin Wolf <kw...@redhat.com> --- block/io.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/block/io.c b/block/io.c index 7808e8bdc0..924bf5ba46 100644 --- a/block/io.c +++ b/block/io.c @@ -695,14 +695,17 @@ static void tracked_request_begin(BdrvTrackedRequest *req, uint64_t bytes, enum BdrvTrackedRequestType type) { + Coroutine *self = qemu_coroutine_self(); + assert(bytes <= INT64_MAX && offset <= INT64_MAX - bytes); + assert(bs->aio_context == qemu_coroutine_get_aio_context(self)); *req = (BdrvTrackedRequest){ .bs = bs, .offset = offset, .bytes = bytes, .type = type, - .co = qemu_coroutine_self(), + .co = self, .serialising = false, .overlap_offset = offset, .overlap_bytes = bytes, -- 2.25.3