We are going to move connection code to own file and want clear names
and APIs.
The structure is shared between user and (possibly) several runs of
connect-thread. So it's wrong to call it "thread". Let's rename to
something more generic.
Appropriately rename connect_thread and thr variables to conn.
connect_thread_state_unref() function gets new appropriate name too
Signed-off-by: Vladimir Sementsov-Ogievskiy
---
block/nbd.c | 127 ++--
1 file changed, 63 insertions(+), 64 deletions(-)
diff --git a/block/nbd.c b/block/nbd.c
index ebbb0bec6a..ab3ef13366 100644
--- a/block/nbd.c
+++ b/block/nbd.c
@@ -66,7 +66,7 @@ typedef enum NBDClientState {
NBD_CLIENT_QUIT
} NBDClientState;
-typedef struct NBDConnectThread {
+typedef struct NBDClientConnection {
/* Initialization constants */
SocketAddress *saddr; /* address to connect to */
@@ -83,7 +83,7 @@ typedef struct NBDConnectThread {
/* All further fields are protected by mutex */
bool running; /* thread is running now */
Coroutine *wait_co; /* nbd_co_establish_connection() wait in yield() */
-} NBDConnectThread;
+} NBDClientConnection;
typedef struct BDRVNBDState {
QIOChannelSocket *sioc; /* The master data channel */
@@ -116,22 +116,22 @@ typedef struct BDRVNBDState {
char *x_dirty_bitmap;
bool alloc_depth;
-NBDConnectThread *connect_thread;
+NBDClientConnection *conn;
} BDRVNBDState;
-static void connect_thread_state_unref(NBDConnectThread *thr);
+static void nbd_client_connection_unref(NBDClientConnection *conn);
static int nbd_establish_connection(BlockDriverState *bs, SocketAddress *saddr,
Error **errp);
static coroutine_fn QIOChannelSocket *
-nbd_co_establish_connection(NBDConnectThread *thr, Error **errp);
-static void nbd_co_establish_connection_cancel(NBDConnectThread *thr);
+nbd_co_establish_connection(NBDClientConnection *conn, Error **errp);
+static void nbd_co_establish_connection_cancel(NBDClientConnection *conn);
static int nbd_client_handshake(BlockDriverState *bs, Error **errp);
static void nbd_yank(void *opaque);
static void nbd_clear_bdrvstate(BDRVNBDState *s)
{
-connect_thread_state_unref(s->connect_thread);
-s->connect_thread = NULL;
+nbd_client_connection_unref(s->conn);
+s->conn = NULL;
object_unref(OBJECT(s->tlscreds));
qapi_free_SocketAddress(s->saddr);
s->saddr = NULL;
@@ -271,7 +271,7 @@ static void coroutine_fn
nbd_client_co_drain_begin(BlockDriverState *bs)
qemu_co_sleep_wake(s->connection_co_sleep_ns_state);
}
-nbd_co_establish_connection_cancel(s->connect_thread);
+nbd_co_establish_connection_cancel(s->conn);
reconnect_delay_timer_del(s);
@@ -311,7 +311,7 @@ static void nbd_teardown_connection(BlockDriverState *bs)
if (s->connection_co_sleep_ns_state) {
qemu_co_sleep_wake(s->connection_co_sleep_ns_state);
}
-nbd_co_establish_connection_cancel(s->connect_thread);
+nbd_co_establish_connection_cancel(s->conn);
}
if (qemu_in_coroutine()) {
s->teardown_co = qemu_coroutine_self();
@@ -338,100 +338,100 @@ static bool nbd_client_connecting_wait(BDRVNBDState *s)
static void nbd_init_connect_thread(BDRVNBDState *s)
{
-s->connect_thread = g_new(NBDConnectThread, 1);
+s->conn = g_new(NBDClientConnection, 1);
-*s->connect_thread = (NBDConnectThread) {
+*s->conn = (NBDClientConnection) {
.saddr = QAPI_CLONE(SocketAddress, s->saddr),
.refcnt = 1,
};
-qemu_mutex_init(&s->connect_thread->mutex);
+qemu_mutex_init(&s->conn->mutex);
}
-static void connect_thread_state_unref(NBDConnectThread *thr)
+static void nbd_client_connection_unref(NBDClientConnection *conn)
{
-if (qatomic_dec_fetch(&thr->refcnt) == 0) {
-if (thr->sioc) {
-qio_channel_close(QIO_CHANNEL(thr->sioc), NULL);
+if (qatomic_dec_fetch(&conn->refcnt) == 0) {
+if (conn->sioc) {
+qio_channel_close(QIO_CHANNEL(conn->sioc), NULL);
}
-error_free(thr->err);
-qapi_free_SocketAddress(thr->saddr);
-g_free(thr);
+error_free(conn->err);
+qapi_free_SocketAddress(conn->saddr);
+g_free(conn);
}
}
static void *connect_thread_func(void *opaque)
{
-NBDConnectThread *thr = opaque;
+NBDClientConnection *conn = opaque;
int ret;
-thr->sioc = qio_channel_socket_new();
+conn->sioc = qio_channel_socket_new();
-error_free(thr->err);
-thr->err = NULL;
-ret = qio_channel_socket_connect_sync(thr->sioc, thr->saddr, &thr->err);
+error_free(conn->err);
+conn->err = NULL;
+ret = qio_channel_socket_connect_sync(conn->sioc, conn->saddr, &conn->err);
if (ret < 0) {
-object_unref(OBJECT(thr->sioc));
-thr->sioc = NULL;
+object_unref(OBJECT(conn->sioc));
+conn->sioc = NULL;