aboutsummaryrefslogtreecommitdiff
path: root/hw/block
diff options
context:
space:
mode:
authorRoman Kagan <rvkagan@yandex-team.ru>2021-11-11 18:33:45 +0300
committerMichael S. Tsirkin <mst@redhat.com>2022-01-07 05:19:55 -0500
commitb7107e758f4ecdd8f07ede3f093cbbfdb623e865 (patch)
tree983be3132011416294690a6db10767bee7191076 /hw/block
parentdeeb956c40e3b6f8ab95f7b53f148a836cf93da2 (diff)
downloadqemu-b7107e758f4ecdd8f07ede3f093cbbfdb623e865.zip
qemu-b7107e758f4ecdd8f07ede3f093cbbfdb623e865.tar.gz
qemu-b7107e758f4ecdd8f07ede3f093cbbfdb623e865.tar.bz2
vhost-user-blk: reconnect on any error during realize
vhost-user-blk realize only attempts to reconnect if the previous connection attempt failed on "a problem with the connection and not an error related to the content (which would fail again the same way in the next attempt)". However this distinction is very subtle, and may be inadvertently broken if the code changes somewhere deep down the stack and a new error gets propagated up to here. OTOH now that the number of reconnection attempts is limited it seems harmless to try reconnecting on any error. So relax the condition of whether to retry connecting to check for any error. This patch amends a527e312b5 "vhost-user-blk: Implement reconnection during realize". Signed-off-by: Roman Kagan <rvkagan@yandex-team.ru> Message-Id: <20211111153354.18807-2-rvkagan@yandex-team.ru> Reviewed-by: Michael S. Tsirkin <mst@redhat.com> Signed-off-by: Michael S. Tsirkin <mst@redhat.com> Reviewed-by: Raphael Norwitz <raphael.norwitz@nutanix.com>
Diffstat (limited to 'hw/block')
-rw-r--r--hw/block/vhost-user-blk.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/hw/block/vhost-user-blk.c b/hw/block/vhost-user-blk.c
index ba13cb8..f9b17f6 100644
--- a/hw/block/vhost-user-blk.c
+++ b/hw/block/vhost-user-blk.c
@@ -511,7 +511,7 @@ static void vhost_user_blk_device_realize(DeviceState *dev, Error **errp)
*errp = NULL;
}
ret = vhost_user_blk_realize_connect(s, errp);
- } while (ret == -EPROTO && retries--);
+ } while (ret < 0 && retries--);
if (ret < 0) {
goto virtio_err;