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; }