qemu-devel.nongnu.org archive mirror
 help / color / mirror / Atom feed
From: Eric Blake <eblake@redhat.com>
To: qemu-devel@nongnu.org
Cc: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>,
	Kevin Wolf <kwolf@redhat.com>, Max Reitz <mreitz@redhat.com>,
	"open list:Network Block Dev..." <qemu-block@nongnu.org>
Subject: [Qemu-devel] [PULL 7/8] block/nbd-client: don't check ioc
Date: Mon,  4 Feb 2019 21:57:03 -0600	[thread overview]
Message-ID: <20190205035704.26014-8-eblake@redhat.com> (raw)
In-Reply-To: <20190205035704.26014-1-eblake@redhat.com>

From: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>

We have several paranoid checks for ioc != NULL. But ioc may become
NULL only on close, which should not happen during requests handling.
Also, we check ioc only sometimes, not after each yield, which is
inconsistent. Let's drop these checks. However, for safety, let's leave
asserts instead.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-Id: <20190201130138.94525-6-vsementsov@virtuozzo.com>
Signed-off-by: Eric Blake <eblake@redhat.com>
---
 block/nbd-client.c | 16 +++++-----------
 1 file changed, 5 insertions(+), 11 deletions(-)

diff --git a/block/nbd-client.c b/block/nbd-client.c
index 65e56000681..386c3feb14f 100644
--- a/block/nbd-client.c
+++ b/block/nbd-client.c
@@ -53,9 +53,7 @@ static void nbd_teardown_connection(BlockDriverState *bs)
 {
     NBDClientSession *client = nbd_get_client_session(bs);

-    if (!client->ioc) { /* Already closed */
-        return;
-    }
+    assert(client->ioc);

     /* finish any pending coroutines */
     qio_channel_shutdown(client->ioc,
@@ -154,10 +152,7 @@ static int nbd_co_send_request(BlockDriverState *bs,
         rc = -EIO;
         goto err;
     }
-    if (!s->ioc) {
-        rc = -EPIPE;
-        goto err;
-    }
+    assert(s->ioc);

     if (qiov) {
         qio_channel_set_cork(s->ioc, true);
@@ -429,10 +424,11 @@ static coroutine_fn int nbd_co_do_receive_one_chunk(
     s->requests[i].receiving = true;
     qemu_coroutine_yield();
     s->requests[i].receiving = false;
-    if (!s->ioc || s->quit) {
+    if (s->quit) {
         error_setg(errp, "Connection closed");
         return -EIO;
     }
+    assert(s->ioc);

     assert(s->reply.handle == handle);

@@ -982,9 +978,7 @@ void nbd_client_close(BlockDriverState *bs)
     NBDClientSession *client = nbd_get_client_session(bs);
     NBDRequest request = { .type = NBD_CMD_DISC };

-    if (client->ioc == NULL) {
-        return;
-    }
+    assert(client->ioc);

     nbd_send_request(client->ioc, &request);

-- 
2.20.1

  parent reply	other threads:[~2019-02-05  3:57 UTC|newest]

Thread overview: 14+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2019-02-05  3:56 [Qemu-devel] [PULL 0/8] NBD patches for 2019-02-04 Eric Blake
2019-02-05  3:56 ` [Qemu-devel] [PULL 1/8] qemu-nbd: Deprecate qemu-nbd --partition Eric Blake
2019-02-05  3:56 ` [Qemu-devel] [PULL 2/8] nbd: generalize usage of nbd_read Eric Blake
2019-02-05  3:56 ` [Qemu-devel] [PULL 3/8] block/nbd-client: split channel errors from export errors Eric Blake
2019-02-05  3:57 ` [Qemu-devel] [PULL 4/8] block/nbd: move connection code from block/nbd to block/nbd-client Eric Blake
2019-02-05  3:57 ` [Qemu-devel] [PULL 5/8] block/nbd-client: split connection from initialization Eric Blake
2019-02-05  3:57 ` [Qemu-devel] [PULL 6/8] block/nbd-client: fix nbd_reply_chunk_iter_receive Eric Blake
2019-02-05  3:57 ` Eric Blake [this message]
2019-02-05  3:57 ` [Qemu-devel] [PULL 8/8] block/nbd-client: rename read_reply_co to connection_co Eric Blake
2019-02-05  4:08 ` [Qemu-devel] [PULL 0/8] NBD patches for 2019-02-04 no-reply
2019-02-05  4:12   ` Eric Blake
2019-02-05  4:08 ` no-reply
2019-02-05  4:11 ` no-reply
2019-02-05 14:01 ` Peter Maydell

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20190205035704.26014-8-eblake@redhat.com \
    --to=eblake@redhat.com \
    --cc=kwolf@redhat.com \
    --cc=mreitz@redhat.com \
    --cc=qemu-block@nongnu.org \
    --cc=qemu-devel@nongnu.org \
    --cc=vsementsov@virtuozzo.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).