From: Max Reitz <mreitz@redhat.com> Date: Mon, 25 Jan 2016 18:41:08 +0000 (+0100) Subject: nbd: client_close on error in nbd_co_client_start X-Git-Tag: v2.6.0-rc0~153^2~43 X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=d3780c2;p=users%2Fdwmw2%2Fqemu.git nbd: client_close on error in nbd_co_client_start 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 <mreitz@redhat.com> Acked-by: Paolo Bonzini <pbonzini@redhat.com> Reviewed-by: Eric Blake <eblake@redhat.com> Signed-off-by: Kevin Wolf <kwolf@redhat.com> --- diff --git a/nbd/server.c b/nbd/server.c index 256feafcec..7fa7f53768 100644 --- a/nbd/server.c +++ b/nbd/server.c @@ -1082,8 +1082,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);