iscsi-initiator-utils/iscsi-initiator-utils-return-on-exists.patch

23 lines
962 B
Diff
Raw Normal View History

2011-10-28 06:58:55 +00:00
diff -aurp open-iscsi-2.0-872-rc4-bnx2i/usr/initiator.c open-iscsi-2.0-872-rc4-bnx2i.workd/usr/initiator.c
--- open-iscsi-2.0-872-rc4-bnx2i/usr/initiator.c 2011-10-28 01:56:53.000000000 -0500
+++ open-iscsi-2.0-872-rc4-bnx2i.workd/usr/initiator.c 2011-10-28 01:57:42.000000000 -0500
@@ -1523,9 +1523,15 @@ static void setup_offload_login_phase(is
conn->state = ISCSI_CONN_STATE_IN_LOGIN;
if (ipc->start_conn(session->t->handle, session->id, conn->id,
&rc) || rc) {
- log_error("can't start connection %d:%d retcode %d (%d)",
- session->id, conn->id, rc, errno);
- iscsi_login_eh(conn, c->qtask, ISCSI_ERR_INTERNAL);
+ if (rc == -EEXIST) {
+ log_error("Session already exists.");
+ session_conn_shutdown(conn, c->qtask,
+ ISCSI_ERR_SESS_EXISTS);
+ } else {
+ log_error("can't start connection %d:%d retcode (%d)",
+ session->id, conn->id, rc);
+ iscsi_login_eh(conn, c->qtask, ISCSI_ERR_INTERNAL);
+ }
return;
}