From 3ccbceb6ff118b41ae41da9b0e974cd838ada653 Mon Sep 17 00:00:00 2001 From: zhenwei pi Date: Thu, 27 Feb 2020 22:13:08 +0800 Subject: [PATCH] lib/connect.c: fix wrong transport type for iser reconnect A new iscsi context is created as TCP transport type, but currently missing iscsi_init_transport to change transport to iser in reconnecting logic, then iser could never reconnect successfully. Use orignal transport to initialize new iscsi context. Signed-off-by: zhenwei pi --- lib/connect.c | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/lib/connect.c b/lib/connect.c index a17b4e5..ff28e23 100644 --- a/lib/connect.c +++ b/lib/connect.c @@ -418,6 +418,14 @@ int iscsi_reconnect(struct iscsi_context *iscsi) return -1; } + /* default transport is initialized as TCP in iscsi_create_context, + we have to overwrite transport in new iscsi as old iscsi. + */ + if (iscsi_init_transport(tmp_iscsi, iscsi->transport)) { + ISCSI_LOG(iscsi, 2, "failed to initializing transport for reconnection"); + return -1; + } + ISCSI_LOG(iscsi, 2, "reconnect initiated"); iscsi_set_targetname(tmp_iscsi, iscsi->target_name);