summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLee Duncan <lduncan@suse.com>2022-05-07 13:45:04 -0700
committerGitHub <noreply@github.com>2022-05-07 13:45:04 -0700
commit8c43a977dc2aed34b7c6e7ab8d4bc31f4e2ac0b5 (patch)
treeb679d9306d05d04e9fafd6c60808b5af91814d44
parent89f73e0c5a57a43f135d4b4bf55423a4109cc551 (diff)
parent2b723d371dc3de8e0cd9b35f0c17ca1c54094b4c (diff)
downloadopen-iscsi-8c43a977dc2aed34b7c6e7ab8d4bc31f4e2ac0b5.tar.gz
Merge pull request #343 from mikechristie/fix-logout
iscsid: fix logout pdu send failure detection handling
-rw-r--r--usr/initiator.c15
1 files changed, 8 insertions, 7 deletions
diff --git a/usr/initiator.c b/usr/initiator.c
index 7186729..56bf38b 100644
--- a/usr/initiator.c
+++ b/usr/initiator.c
@@ -1153,8 +1153,9 @@ static void iscsi_stop(void *data)
rc = iscsi_send_logout(conn);
if (!rc)
return;
- conn_error(conn, "Could not send logout pdu(%s) from iscsi_stop."
- "Dropping session", strerror(rc));
+
+ conn_error(conn, "Could not send logout pdu(%s) from iscsi_stop. Dropping session",
+ strerror(rc));
}
rc = session_conn_shutdown(conn, conn->logout_qtask, ISCSI_SUCCESS);
@@ -1239,8 +1240,8 @@ static void iscsi_recv_async_msg(iscsi_conn_t *conn, struct iscsi_hdr *hdr)
*/
rc = iscsi_send_logout(conn);
if (rc)
- conn_error(conn, "Could not send logout in response to"
- "logout request aen:%s", strerror(rc));
+ conn_error(conn, "Could not send logout in response to logout request aen:%s",
+ strerror(rc));
break;
case ISCSI_ASYNC_MSG_DROPPING_CONNECTION:
conn_warn(conn, "Target dropping %u, reconnect min %u max %u", ntohs(async_hdr->param1),
@@ -2146,12 +2147,12 @@ invalid_state:
if (!(session->t->caps & CAP_LOGIN_OFFLOAD)) {
/* unbind is not supported so just do old logout */
rc = iscsi_send_logout(conn);
- if (rc)
+ if (!rc)
return ISCSI_SUCCESS;
}
- conn_error(conn, "Could not send logout pdu(%s) from session_logout_task."
- "Dropping session", strerror(rc));
+ conn_error(conn, "Could not send logout pdu(%s) from session_logout_task. Dropping session",
+ strerror(rc));
/* fallthrough */
default:
rc = session_conn_shutdown(conn, qtask, ISCSI_SUCCESS);