block/nbd-client: nbd_co_send_request: fix return code
authorVladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Wed, 20 Sep 2017 12:45:07 +0000 (15:45 +0300)
committerEric Blake <eblake@redhat.com>
Mon, 25 Sep 2017 13:21:26 +0000 (08:21 -0500)
It's incorrect to return success rc >= 0 if we skip qio_channel_writev_all()
call due to s->quit.

Signed-off-by: Vladimir Sementsov-Ogievskiy <vsementsov@virtuozzo.com>
Reviewed-by: Eric Blake <eblake@redhat.com>
Message-Id: <20170920124507.18841-4-vsementsov@virtuozzo.com>
Signed-off-by: Eric Blake <eblake@redhat.com>
block/nbd-client.c

index ac93c4c0d05e188c51f00ab091b32fbcb6b4198d..72651dcdb17970a546f0f1e5ed59155f721f9c42 100644 (file)
@@ -161,6 +161,8 @@ static int nbd_co_send_request(BlockDriverState *bs,
                                        NULL) < 0) {
                 rc = -EIO;
             }
+        } else if (rc >= 0) {
+            rc = -EIO;
         }
         qio_channel_set_cork(s->ioc, false);
     } else {