79c4324644
Change-Id: I2d302dda68298877c65c99147f5bf22186a59aac
52 lines
1.8 KiB
Diff
52 lines
1.8 KiB
Diff
From a64c32378bd5a1119ea69d8c29f93b6365d3346b Mon Sep 17 00:00:00 2001
|
|
From: Luo Yifan <luoyifan_yewu@cmss.chinamobile.com>
|
|
Date: Mon, 4 Dec 2023 11:11:29 +0800
|
|
Subject: [PATCH] vhost-user-blk: reconnect on any error during realize
|
|
|
|
cherry picked from commit b7107e758f4ecdd8f07ede3f093cbbfdb623e865
|
|
|
|
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>
|
|
Signed-off-by: Luo Yifan <luoyifan_yewu@cmss.chinamobile.com>
|
|
---
|
|
hw/block/vhost-user-blk.c | 2 +-
|
|
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
|
|
diff --git a/hw/block/vhost-user-blk.c b/hw/block/vhost-user-blk.c
|
|
index eddc5588fa..a2236c5239 100644
|
|
--- a/hw/block/vhost-user-blk.c
|
|
+++ b/hw/block/vhost-user-blk.c
|
|
@@ -516,7 +516,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;
|
|
--
|
|
2.27.0
|
|
|