Am 22.09.2022 um 10:49 hat Paolo Bonzini geschrieben: > Callers of coroutine_fn must be coroutine_fn themselves, or the call > must be within "if (qemu_in_coroutine())". Apply coroutine_fn to > functions where this holds. > > Reviewed-by: Alberto Faria <afa...@redhat.com> > Reviewed-by: Eric Blake <ebl...@redhat.com> > Signed-off-by: Paolo Bonzini <pbonz...@redhat.com>
Hm... blkdebug_debug_event() is called from bdrv_debug_event(), which is not coroutine_fn. And I think that it's not coroutine_fn is correct: For example, with 'qemu-img snapshot -c' you get img_snapshot() -> bdrv_snapshot_create() -> qcow2_snapshot_create() -> qcow2_alloc_clusters() -> BLKDBG_EVENT. I'm sure many other calls in qcow2 can be reached from non-coroutine context as well. It almost looks like your code analysis didn't consider calls through function pointers? Kevin