block/export: only acquire AioContext once for vhost_user_server_stop()
vhost_user_server_stop() uses AIO_WAIT_WHILE(). AIO_WAIT_WHILE() requires that AioContext is only acquired once. Since blk_exp_request_shutdown() already acquires the AioContext it shouldn't be acquired again in vhost_user_server_stop(). Signed-off-by: Stefan Hajnoczi <stefanha@redhat.com> Message-Id: <20230323145853.1345527-1-stefanha@redhat.com> Reviewed-by: Kevin Wolf <kwolf@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com>
This commit is contained in:
parent
bd2cd4a441
commit
2957dc40a2
@ -346,10 +346,9 @@ static void vu_accept(QIONetListener *listener, QIOChannelSocket *sioc,
|
||||
aio_context_release(server->ctx);
|
||||
}
|
||||
|
||||
/* server->ctx acquired by caller */
|
||||
void vhost_user_server_stop(VuServer *server)
|
||||
{
|
||||
aio_context_acquire(server->ctx);
|
||||
|
||||
qemu_bh_delete(server->restart_listener_bh);
|
||||
server->restart_listener_bh = NULL;
|
||||
|
||||
@ -366,8 +365,6 @@ void vhost_user_server_stop(VuServer *server)
|
||||
AIO_WAIT_WHILE(server->ctx, server->co_trip);
|
||||
}
|
||||
|
||||
aio_context_release(server->ctx);
|
||||
|
||||
if (server->listener) {
|
||||
qio_net_listener_disconnect(server->listener);
|
||||
object_unref(OBJECT(server->listener));
|
||||
|
Loading…
Reference in New Issue
Block a user