OSDN Git Service

aio-posix: Don't count ctx->notifier as progress when polling
authorFam Zheng <famz@redhat.com>
Thu, 9 Aug 2018 13:22:58 +0000 (21:22 +0800)
committerFam Zheng <famz@redhat.com>
Wed, 15 Aug 2018 02:12:35 +0000 (10:12 +0800)
The same logic exists in fd polling. This change is especially important
to avoid busy loop once we limit aio_notify_accept() to blocking
aio_poll().

Cc: qemu-stable@nongnu.org
Signed-off-by: Fam Zheng <famz@redhat.com>
Message-Id: <20180809132259.18402-2-famz@redhat.com>
Signed-off-by: Fam Zheng <famz@redhat.com>
util/aio-posix.c

index 118bf57..b5c7f46 100644 (file)
@@ -494,7 +494,8 @@ static bool run_poll_handlers_once(AioContext *ctx)
     QLIST_FOREACH_RCU(node, &ctx->aio_handlers, node) {
         if (!node->deleted && node->io_poll &&
             aio_node_check(ctx, node->is_external) &&
-            node->io_poll(node->opaque)) {
+            node->io_poll(node->opaque) &&
+            node->opaque != &ctx->notifier) {
             progress = true;
         }