aboutsummaryrefslogtreecommitdiff
path: root/nbd
diff options
context:
space:
mode:
authorVladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>2017-06-02 18:01:46 +0300
committerPaolo Bonzini <pbonzini@redhat.com>2017-06-15 11:18:32 +0200
commitc84087f2f52f6e87ad1cbd07e5502ab748c17039 (patch)
tree64045f1126ceee87496909e80f741be0530dfea8 /nbd
parentee898b870fe864bf93370482aafbece1ca205dc3 (diff)
nbd/server: remove NBDClientNewData
"co" field of NBDClientNewData has never been used, all the way back to its declaration in commit 1a6245a5. So let's just use client pointer instead of extra structure. Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com> Reviewed-by: Eric Blake <eblake@redhat.com> Message-Id: <20170602150150.258222-9-vsementsov@virtuozzo.com> Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'nbd')
-rw-r--r--nbd/server.c25
1 files changed, 7 insertions, 18 deletions
diff --git a/nbd/server.c b/nbd/server.c
index 9fb03ce0a7..d52682741f 100644
--- a/nbd/server.c
+++ b/nbd/server.c
@@ -535,14 +535,8 @@ static int nbd_negotiate_options(NBDClient *client)
}
}
-typedef struct {
- NBDClient *client;
- Coroutine *co;
-} NBDClientNewData;
-
-static coroutine_fn int nbd_negotiate(NBDClientNewData *data)
+static coroutine_fn int nbd_negotiate(NBDClient *client)
{
- NBDClient *client = data->client;
char buf[8 + 8 + 8 + 128];
int rc;
const uint16_t myflags = (NBD_FLAG_HAS_FLAGS | NBD_FLAG_SEND_TRIM |
@@ -1268,8 +1262,7 @@ static void nbd_client_receive_next_request(NBDClient *client)
static coroutine_fn void nbd_co_client_start(void *opaque)
{
- NBDClientNewData *data = opaque;
- NBDClient *client = data->client;
+ NBDClient *client = opaque;
NBDExport *exp = client->exp;
if (exp) {
@@ -1278,15 +1271,12 @@ static coroutine_fn void nbd_co_client_start(void *opaque)
}
qemu_co_mutex_init(&client->send_lock);
- if (nbd_negotiate(data)) {
+ if (nbd_negotiate(client)) {
client_close(client, false);
- goto out;
+ return;
}
nbd_client_receive_next_request(client);
-
-out:
- g_free(data);
}
/*
@@ -1302,7 +1292,7 @@ void nbd_client_new(NBDExport *exp,
void (*close_fn)(NBDClient *, bool))
{
NBDClient *client;
- NBDClientNewData *data = g_new(NBDClientNewData, 1);
+ Coroutine *co;
client = g_malloc0(sizeof(NBDClient));
client->refcount = 1;
@@ -1318,7 +1308,6 @@ void nbd_client_new(NBDExport *exp,
object_ref(OBJECT(client->ioc));
client->close_fn = close_fn;
- data->client = client;
- data->co = qemu_coroutine_create(nbd_co_client_start, data);
- qemu_coroutine_enter(data->co);
+ co = qemu_coroutine_create(nbd_co_client_start, client);
+ qemu_coroutine_enter(co);
}