I'll test it tomorrow. I assume you want to avoid calling
event_notifier_set() until function is reentered via aio_pool?

Yes.  But actually, I need to check if it's possible to fix
bdrv_drain_all.  If you're in coroutine context, you can defer the
draining to a safe point using a bottom half.  If you're not in
coroutine context, perhaps bdrv_drain_all has to be made illegal.  Which
means a bunch of code auditing...

For what it's worth, your solution also works fine, I couldn't recreate hang with it. Updated patch proposal posted earlier today.

--
mg

Reply via email to