From: Max Reitz <mre...@redhat.com> Use client_close() if an error in nbd_co_client_start() occurs instead of manually inlining parts of it. This fixes an assertion error on the server side if nbd_negotiate() fails.
Signed-off-by: Max Reitz <mre...@redhat.com> Acked-by: Paolo Bonzini <pbonz...@redhat.com> Reviewed-by: Eric Blake <ebl...@redhat.com> Signed-off-by: Kevin Wolf <kw...@redhat.com> --- nbd/server.c | 3 +-- 1 file changed, 1 insertion(+), 2 deletions(-) diff --git a/nbd/server.c b/nbd/server.c index 2265cb0..5169b59 100644 --- a/nbd/server.c +++ b/nbd/server.c @@ -1080,8 +1080,7 @@ static coroutine_fn void nbd_co_client_start(void *opaque) nbd_export_get(exp); } if (nbd_negotiate(data)) { - shutdown(client->sock, 2); - client->close(client); + client_close(client); goto out; } qemu_co_mutex_init(&client->send_lock); -- 1.8.3.1