summary refs log tree commit diff stats
path: root/nbd/server.c
diff options
context:
space:
mode:
authorMax Reitz <mreitz@redhat.com>2016-01-25 19:41:08 +0100
committerMax Reitz <mreitz@redhat.com>2016-02-02 17:49:42 +0100
commitd3780c2dce2c452759ee9d94f9d824cf14cc3ab8 (patch)
treefe03e55c49a40a5309ecdc8f0a8da73a7aec81e3 /nbd/server.c
parentcc8c46b7c5fffd6b6ca099799be0af224c589603 (diff)
downloadfocaccia-qemu-d3780c2dce2c452759ee9d94f9d824cf14cc3ab8.tar.gz
focaccia-qemu-d3780c2dce2c452759ee9d94f9d824cf14cc3ab8.zip
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>
Diffstat (limited to '')
-rw-r--r--nbd/server.c3
1 files changed, 1 insertions, 2 deletions
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);