From mboxrd@z Thu Jan 1 00:00:00 1970 Received: from eggs.gnu.org ([2001:4830:134:3::10]:40711) by lists.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VsUWd-0006Df-Mj for qemu-devel@nongnu.org; Mon, 16 Dec 2013 04:31:49 -0500 Received: from Debian-exim by eggs.gnu.org with spam-scanned (Exim 4.71) (envelope-from ) id 1VsUWU-0002Av-P4 for qemu-devel@nongnu.org; Mon, 16 Dec 2013 04:31:43 -0500 Received: from mx1.redhat.com ([209.132.183.28]:12468) by eggs.gnu.org with esmtp (Exim 4.71) (envelope-from ) id 1VsUWU-0002Ai-H5 for qemu-devel@nongnu.org; Mon, 16 Dec 2013 04:31:34 -0500 Received: from int-mx12.intmail.prod.int.phx2.redhat.com (int-mx12.intmail.prod.int.phx2.redhat.com [10.5.11.25]) by mx1.redhat.com (8.14.4/8.14.4) with ESMTP id rBG9VXA0027533 (version=TLSv1/SSLv3 cipher=DHE-RSA-AES256-SHA bits=256 verify=OK) for ; Mon, 16 Dec 2013 04:31:34 -0500 From: Gerd Hoffmann Date: Mon, 16 Dec 2013 10:31:11 +0100 Message-Id: <1387186277-9573-11-git-send-email-kraxel@redhat.com> In-Reply-To: <1387186277-9573-1-git-send-email-kraxel@redhat.com> References: <1387186277-9573-1-git-send-email-kraxel@redhat.com> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: quoted-printable Subject: [Qemu-devel] [PATCH 10/16] nbd: pass export name as init argument List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , To: qemu-devel@nongnu.org Cc: Kevin Wolf , =?UTF-8?q?Marc-Andr=C3=A9=20Lureau?= , Gerd Hoffmann , Stefan Hajnoczi , Paolo Bonzini From: Marc-Andr=C3=A9 Lureau There is no need to keep the export name around, and it seems a better fit as an argument in the init() call. Signed-off-by: Marc-Andr=C3=A9 Lureau Acked-by: Paolo Bonzini Signed-off-by: Gerd Hoffmann --- block/nbd-client.c | 9 ++++----- block/nbd-client.h | 5 ++--- block/nbd.c | 13 ++++++++----- 3 files changed, 14 insertions(+), 13 deletions(-) diff --git a/block/nbd-client.c b/block/nbd-client.c index 693110d..3dfae1d 100644 --- a/block/nbd-client.c +++ b/block/nbd-client.c @@ -338,18 +338,17 @@ static void nbd_teardown_connection(NbdClientSessio= n *client) void nbd_client_session_close(NbdClientSession *client) { nbd_teardown_connection(client); - g_free(client->export_name); - client->export_name =3D NULL; } =20 -int nbd_client_session_init(NbdClientSession *client, - BlockDriverState *bs, int sock) +int nbd_client_session_init(NbdClientSession *client, BlockDriverState *= bs, + int sock, const char *export) { int ret; =20 /* NBD handshake */ + logout("session init %s\n", export); qemu_set_block(sock); - ret =3D nbd_receive_negotiate(sock, client->export_name, + ret =3D nbd_receive_negotiate(sock, export, &client->nbdflags, &client->size, &client->blocksize); if (ret < 0) { diff --git a/block/nbd-client.h b/block/nbd-client.h index c271236..f2a6337 100644 --- a/block/nbd-client.h +++ b/block/nbd-client.h @@ -30,14 +30,13 @@ typedef struct NbdClientSession { Coroutine *recv_coroutine[MAX_NBD_REQUESTS]; struct nbd_reply reply; =20 - char *export_name; /* An NBD server may export several devices */ bool is_unix; =20 BlockDriverState *bs; } NbdClientSession; =20 -int nbd_client_session_init(NbdClientSession *client, - BlockDriverState *bs, int sock); +int nbd_client_session_init(NbdClientSession *client, BlockDriverState *= bs, + int sock, const char *export_name); void nbd_client_session_close(NbdClientSession *client); =20 int nbd_client_session_co_discard(NbdClientSession *client, int64_t sect= or_num, diff --git a/block/nbd.c b/block/nbd.c index be75ba0..4455a13 100644 --- a/block/nbd.c +++ b/block/nbd.c @@ -188,7 +188,7 @@ out: g_free(file); } =20 -static int nbd_config(BDRVNBDState *s, QDict *options) +static int nbd_config(BDRVNBDState *s, QDict *options, char **export) { Error *local_err =3D NULL; =20 @@ -218,8 +218,8 @@ static int nbd_config(BDRVNBDState *s, QDict *options= ) qemu_opt_set_number(s->socket_opts, "port", NBD_DEFAULT_PORT); } =20 - s->client.export_name =3D g_strdup(qdict_get_try_str(options, "expor= t")); - if (s->client.export_name) { + *export =3D g_strdup(qdict_get_try_str(options, "export")); + if (*export) { qdict_del(options, "export"); } =20 @@ -253,10 +253,11 @@ static int nbd_open(BlockDriverState *bs, QDict *op= tions, int flags, Error **errp) { BDRVNBDState *s =3D bs->opaque; + char *export =3D NULL; int result, sock; =20 /* Pop the config into our state object. Exit if invalid. */ - result =3D nbd_config(s, options); + result =3D nbd_config(s, options, &export); if (result !=3D 0) { return result; } @@ -270,7 +271,9 @@ static int nbd_open(BlockDriverState *bs, QDict *opti= ons, int flags, } =20 /* NBD handshake */ - return nbd_client_session_init(&s->client, bs, sock); + result =3D nbd_client_session_init(&s->client, bs, sock, export); + g_free(export); + return result; } =20 static int nbd_co_readv(BlockDriverState *bs, int64_t sector_num, --=20 1.8.3.1