diff options
author | Vladimir Sementsov-Ogievskiy | 2020-09-03 21:02:59 +0200 |
---|---|---|
committer | Eric Blake | 2020-10-09 22:04:32 +0200 |
commit | 8a509afd724671ffc066235e368ba7d81c9a6dd7 (patch) | |
tree | c1da4d5de41e96267b218d8880bd02cc80e75c1e /block | |
parent | block/nbd: fix drain dead-lock because of nbd reconnect-delay (diff) | |
download | qemu-8a509afd724671ffc066235e368ba7d81c9a6dd7.tar.gz qemu-8a509afd724671ffc066235e368ba7d81c9a6dd7.tar.xz qemu-8a509afd724671ffc066235e368ba7d81c9a6dd7.zip |
block/nbd: correctly use qio_channel_detach_aio_context when needed
Don't use nbd_client_detach_aio_context() driver handler where we want
to finalize the connection. We should directly use
qio_channel_detach_aio_context() in such cases. Driver handler may (and
will) contain another things, unrelated to the qio channel.
Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Message-Id: <20200903190301.367620-3-vsementsov@virtuozzo.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Signed-off-by: Eric Blake <eblake@redhat.com>
Diffstat (limited to 'block')
-rw-r--r-- | block/nbd.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/block/nbd.c b/block/nbd.c index 912ea27be7..a495ad7ddf 100644 --- a/block/nbd.c +++ b/block/nbd.c @@ -549,7 +549,7 @@ static coroutine_fn void nbd_reconnect_attempt(BDRVNBDState *s) /* Finalize previous connection if any */ if (s->ioc) { - nbd_client_detach_aio_context(s->bs); + qio_channel_detach_aio_context(QIO_CHANNEL(s->ioc)); object_unref(OBJECT(s->sioc)); s->sioc = NULL; object_unref(OBJECT(s->ioc)); @@ -707,7 +707,7 @@ static coroutine_fn void nbd_connection_entry(void *opaque) s->connection_co = NULL; if (s->ioc) { - nbd_client_detach_aio_context(s->bs); + qio_channel_detach_aio_context(QIO_CHANNEL(s->ioc)); object_unref(OBJECT(s->sioc)); s->sioc = NULL; object_unref(OBJECT(s->ioc)); |