diff options
author | Eric Blake <eblake@redhat.com> | 2019-01-17 13:36:46 -0600 |
---|---|---|
committer | Eric Blake <eblake@redhat.com> | 2019-01-21 15:49:52 -0600 |
commit | 6dc1667d6881add34e9bad48ac2a848134ea8a6d (patch) | |
tree | bed0899a62de2613ea2111aee3de842c9fce619f /block | |
parent | 091d0bf3c94737fc451a9b3f4eddf3a4d74c90b8 (diff) | |
download | qemu-6dc1667d6881add34e9bad48ac2a848134ea8a6d.zip qemu-6dc1667d6881add34e9bad48ac2a848134ea8a6d.tar.gz qemu-6dc1667d6881add34e9bad48ac2a848134ea8a6d.tar.bz2 |
nbd/client: Move export name into NBDExportInfo
Refactor the 'name' parameter of nbd_receive_negotiate() from
being a separate parameter into being part of the in-out 'info'.
This also spills over to a simplification of nbd_opt_go().
The main driver for this refactoring is that an upcoming patch
would like to add support to qemu-nbd to list information about
all exports available on a server, where the name(s) will be
provided by the server instead of the client. But another benefit
is that we can now allow the client to explicitly specify the
empty export name "" even when connecting to an oldstyle server
(even if qemu is no longer such a server after commit 7f7dfe2a).
Signed-off-by: Eric Blake <eblake@redhat.com>
Reviewed-by: Richard W.M. Jones <rjones@redhat.com>
Reviewed-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20190117193658.16413-10-eblake@redhat.com>
Diffstat (limited to 'block')
-rw-r--r-- | block/nbd-client.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/block/nbd-client.c b/block/nbd-client.c index ef32075..3309376 100644 --- a/block/nbd-client.c +++ b/block/nbd-client.c @@ -999,10 +999,11 @@ int nbd_client_init(BlockDriverState *bs, client->info.structured_reply = true; client->info.base_allocation = true; client->info.x_dirty_bitmap = g_strdup(x_dirty_bitmap); - ret = nbd_receive_negotiate(QIO_CHANNEL(sioc), export, - tlscreds, hostname, + client->info.name = g_strdup(export ?: ""); + ret = nbd_receive_negotiate(QIO_CHANNEL(sioc), tlscreds, hostname, &client->ioc, &client->info, errp); g_free(client->info.x_dirty_bitmap); + g_free(client->info.name); if (ret < 0) { logout("Failed to negotiate with the NBD server\n"); return ret; |