We don't need to wait for the PDU active list to be empty: virtfs_reset() already takes care of that.
Signed-off-by: Greg Kurz <gr...@kaod.org> --- hw/9pfs/9p.c | 9 ++++----- 1 file changed, 4 insertions(+), 5 deletions(-) diff --git a/hw/9pfs/9p.c b/hw/9pfs/9p.c index 75c6645de9ac..6fea68866a5c 100644 --- a/hw/9pfs/9p.c +++ b/hw/9pfs/9p.c @@ -3560,8 +3560,11 @@ typedef struct VirtfsCoResetData { static void coroutine_fn virtfs_co_reset(void *opaque) { VirtfsCoResetData *data = opaque; + V9fsPDU *fake_pdu = &data->pdu; + V9fsState *s = fake_pdu->s; - virtfs_reset(&data->pdu); + virtfs_reset(fake_pdu); + g_assert(QLIST_EMPTY(&s->active_list)); data->done = true; } @@ -3570,10 +3573,6 @@ void v9fs_reset(V9fsState *s) VirtfsCoResetData data = { .pdu = { .s = s }, .done = false }; Coroutine *co; - while (!QLIST_EMPTY(&s->active_list)) { - aio_poll(qemu_get_aio_context(), true); - } - co = qemu_coroutine_create(virtfs_co_reset, &data); qemu_coroutine_enter(co);