All new accounts created on Gitlab now require administrator approval. If you invite any collaborators, please let Flux staff know so they can approve the accounts.

Commit 00f78533 authored by Paolo Bonzini's avatar Paolo Bonzini Committed by Kevin Wolf

aio: Fix qemu_aio_wait() to maintain correct walking_handlers count

Fix qemu_aio_wait() to ensure that registered aio handlers don't get
deleted when they are still active. This is ensured by maintaning the
right count of walking_handlers.
Signed-off-by: default avatarPaolo Bonzini <pbonzini@redhat.com>
Signed-off-by: default avatarBharata B Rao <bharata@linux.vnet.ibm.com>
Signed-off-by: default avatarKevin Wolf <kwolf@redhat.com>
parent 870f5681
......@@ -119,7 +119,7 @@ bool qemu_aio_wait(void)
return true;
}
walking_handlers = 1;
walking_handlers++;
FD_ZERO(&rdfds);
FD_ZERO(&wrfds);
......@@ -147,7 +147,7 @@ bool qemu_aio_wait(void)
}
}
walking_handlers = 0;
walking_handlers--;
/* No AIO operations? Get us out of here */
if (!busy) {
......@@ -159,7 +159,7 @@ bool qemu_aio_wait(void)
/* if we have any readable fds, dispatch event */
if (ret > 0) {
walking_handlers = 1;
walking_handlers++;
/* we have to walk very carefully in case
* qemu_aio_set_fd_handler is called while we're walking */
......@@ -187,7 +187,7 @@ bool qemu_aio_wait(void)
}
}
walking_handlers = 0;
walking_handlers--;
}
return true;
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment