nbd_co_establish_connection_cancel() actually needs only pointer to NBDConnectThread. So, make it clean.
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsement...@virtuozzo.com> --- block/nbd.c | 16 +++++++--------- 1 file changed, 7 insertions(+), 9 deletions(-) diff --git a/block/nbd.c b/block/nbd.c index a487fd1e68..ebbb0bec6a 100644 --- a/block/nbd.c +++ b/block/nbd.c @@ -124,7 +124,7 @@ 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(BlockDriverState *bs); +static void nbd_co_establish_connection_cancel(NBDConnectThread *thr); static int nbd_client_handshake(BlockDriverState *bs, Error **errp); static void nbd_yank(void *opaque); @@ -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(bs); + nbd_co_establish_connection_cancel(s->connect_thread); 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(bs); + nbd_co_establish_connection_cancel(s->connect_thread); } if (qemu_in_coroutine()) { s->teardown_co = qemu_coroutine_self(); @@ -461,14 +461,12 @@ nbd_co_establish_connection(NBDConnectThread *thr, Error **errp) /* * nbd_co_establish_connection_cancel - * Cancel nbd_co_establish_connection asynchronously: it will finish soon, to - * allow drained section to begin. + * Cancel nbd_co_establish_connection() asynchronously. Note, that it doesn't + * stop the thread itself neither close the socket. It just safely wakes + * nbd_co_establish_connection() sleeping in the yield(). */ -static void nbd_co_establish_connection_cancel(BlockDriverState *bs) +static void nbd_co_establish_connection_cancel(NBDConnectThread *thr) { - BDRVNBDState *s = bs->opaque; - NBDConnectThread *thr = s->connect_thread; - qemu_mutex_lock(&thr->mutex); if (thr->wait_co) { -- 2.29.2