On 13.09.18 14:52, Kevin Wolf wrote: > In the context of draining a BDS, the .drained_poll callback of block > jobs is called. If this returns true (i.e. there is still some activity > pending), the drain operation may call aio_poll() with blocking=true to > wait for completion. > > As soon as the pending activity is completed and the job finally arrives > in a quiescent state (i.e. its coroutine either yields with busy=false > or terminates), the block job must notify the aio_poll() loop to wake > up, otherwise we get a deadlock if both are running in different > threads. > > Signed-off-by: Kevin Wolf <kw...@redhat.com> > Reviewed-by: Fam Zheng <f...@redhat.com> > --- > include/block/blockjob.h | 13 +++++++++++++ > include/qemu/job.h | 3 +++ > blockjob.c | 18 ++++++++++++++++++ > job.c | 7 +++++++ > 4 files changed, 41 insertions(+)
Reviewed-by: Max Reitz <mre...@redhat.com>
signature.asc
Description: OpenPGP digital signature