|
|
76daa3 |
From 3e2c0369fc46cd052a4f97cda57d879796bce790 Mon Sep 17 00:00:00 2001
|
|
|
76daa3 |
From: Paolo Bonzini <pbonzini@redhat.com>
|
|
|
76daa3 |
Date: Fri, 16 Jun 2017 10:28:42 +0200
|
|
|
76daa3 |
Subject: [PATCH 5/8] nbd: fix NBD over TLS (bz1461827)
|
|
|
76daa3 |
|
|
|
76daa3 |
RH-Author: Paolo Bonzini <pbonzini@redhat.com>
|
|
|
76daa3 |
Message-id: <20170616102842.16984-1-pbonzini@redhat.com>
|
|
|
76daa3 |
Patchwork-id: 75621
|
|
|
76daa3 |
O-Subject: [RHEL7.4 qemu-kvm-rhev PATCH] nbd: fix NBD over TLS (bz1461827)
|
|
|
76daa3 |
Bugzilla: 1461827
|
|
|
76daa3 |
RH-Acked-by: Daniel P. Berrange <berrange@redhat.com>
|
|
|
76daa3 |
RH-Acked-by: Laszlo Ersek <lersek@redhat.com>
|
|
|
76daa3 |
RH-Acked-by: Stefan Hajnoczi <stefanha@redhat.com>
|
|
|
76daa3 |
|
|
|
76daa3 |
Upstream status: queued in my NBD tree, reviewed and tested (see below)
|
|
|
76daa3 |
|
|
|
76daa3 |
When attaching the NBD QIOChannel to an AioContext, the TLS channel should
|
|
|
76daa3 |
be used, not the underlying socket channel. This is because, trivially,
|
|
|
76daa3 |
the TLS channel will be the one that we read/write to and thus the one
|
|
|
76daa3 |
that will get the qio_channel_yield() call.
|
|
|
76daa3 |
|
|
|
76daa3 |
Fixes: ff82911cd3f69f028f2537825c9720ff78bc3f19
|
|
|
76daa3 |
Cc: qemu-stable@nongnu.org
|
|
|
76daa3 |
Reviewed-by: Stefan Hajnoczi <stefanha@redhat.com>
|
|
|
76daa3 |
Reviewed-by: Daniel P. Berrange <berrange@redhat.com>
|
|
|
76daa3 |
Tested-by: Daniel P. Berrange <berrange@redhat.com>
|
|
|
76daa3 |
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
|
|
|
76daa3 |
Signed-off-by: Miroslav Rezanina <mrezanin@redhat.com>
|
|
|
76daa3 |
---
|
|
|
76daa3 |
block/nbd-client.c | 4 ++--
|
|
|
76daa3 |
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
|
76daa3 |
|
|
|
76daa3 |
diff --git a/block/nbd-client.c b/block/nbd-client.c
|
|
|
76daa3 |
index 43e0292..282679b 100644
|
|
|
76daa3 |
--- a/block/nbd-client.c
|
|
|
76daa3 |
+++ b/block/nbd-client.c
|
|
|
76daa3 |
@@ -340,14 +340,14 @@ int nbd_client_co_pdiscard(BlockDriverState *bs, int64_t offset, int count)
|
|
|
76daa3 |
void nbd_client_detach_aio_context(BlockDriverState *bs)
|
|
|
76daa3 |
{
|
|
|
76daa3 |
NBDClientSession *client = nbd_get_client_session(bs);
|
|
|
76daa3 |
- qio_channel_detach_aio_context(QIO_CHANNEL(client->sioc));
|
|
|
76daa3 |
+ qio_channel_detach_aio_context(QIO_CHANNEL(client->ioc));
|
|
|
76daa3 |
}
|
|
|
76daa3 |
|
|
|
76daa3 |
void nbd_client_attach_aio_context(BlockDriverState *bs,
|
|
|
76daa3 |
AioContext *new_context)
|
|
|
76daa3 |
{
|
|
|
76daa3 |
NBDClientSession *client = nbd_get_client_session(bs);
|
|
|
76daa3 |
- qio_channel_attach_aio_context(QIO_CHANNEL(client->sioc), new_context);
|
|
|
76daa3 |
+ qio_channel_attach_aio_context(QIO_CHANNEL(client->ioc), new_context);
|
|
|
76daa3 |
aio_co_schedule(new_context, client->read_reply_co);
|
|
|
76daa3 |
}
|
|
|
76daa3 |
|
|
|
76daa3 |
--
|
|
|
76daa3 |
1.8.3.1
|
|
|
76daa3 |
|