From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:53401) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1fp2TU-0003nt-4S for qemu-devel@nongnu.org; Sun, 12 Aug 2018 22:20:52 -0400 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1fp2TT-0008LP-DG for qemu-devel@nongnu.org; Sun, 12 Aug 2018 22:20:52 -0400 From: Max Reitz Date: Mon, 13 Aug 2018 04:20:04 +0200 Message-Id: <20180813022006.7216-16-mreitz@redhat.com> In-Reply-To: <20180813022006.7216-1-mreitz@redhat.com> References: <20180813022006.7216-1-mreitz@redhat.com> Subject: [Qemu-devel] [PATCH 15/17] mirror: Release AioCtx before queue_restart_all() List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-block@nongnu.org Cc: qemu-devel@nongnu.org, Max Reitz , Kevin Wolf , Jeff Cody , Fam Zheng Calling qemu_co_queue_restart_all() with a held AioContext looks a bit strange. There is no reason why we would hold the context any longer (as this coroutine is not going to perform any further operations that would necessitate it), so release it before restarting the waiting requests. Signed-off-by: Max Reitz --- block/mirror.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/block/mirror.c b/block/mirror.c index 053c37b6a6..cba7de610e 100644 --- a/block/mirror.c +++ b/block/mirror.c @@ -395,10 +395,10 @@ static void coroutine_fn mirror_co_perform(void *opaque) } } + aio_context_release(aio_context); + qemu_co_queue_restart_all(&op->waiting_requests); g_free(op); - - aio_context_release(aio_context); } /* If mirror_method == MIRROR_METHOD_COPY, *offset and *bytes will be -- 2.17.1