Home | History | Annotate | Download | only in iscsi

Lines Matching defs:sess

392 	session_t *sess;
396 TAILQ_FOREACH(sess, &iscsi_sessions, s_sessions)
397 if (sess->s_id == id) {
400 return sess;
414 find_connection(session_t *sess, uint32_t id)
420 TAILQ_FOREACH(conn, &sess->s_conn_list, c_connections)
437 ref_session(session_t *sess)
442 KASSERT(sess != NULL);
443 if (sess->s_refcount <= CCBS_PER_SESSION) {
444 sess->s_refcount++;
486 session_t *sess = conn->c_session;
506 TAILQ_REMOVE(&sess->s_conn_list, conn, c_connections);
507 sess->s_mru_connection = TAILQ_FIRST(&sess->s_conn_list);
532 sess->s_active_connections--;
536 if (!sess->s_active_connections && sess->s_ErrorRecoveryLevel < 2)
537 sess->s_TSIH = 0;
542 if (sess->s_ErrorRecoveryLevel < 2 &&
546 if (!sess->s_active_connections &&
614 session_t *sess;
622 sess = find_session(sid);
623 if (sess == NULL) {
630 if (sess->s_terminating) {
633 DEB(5, ("Session is being killed with status %d\n",sess->s_terminating));
641 if (sess->s_sessions.tqe_next == NULL && sess->s_sessions.tqe_prev == NULL) {
656 if (sess->s_active_connections == 1)
657 conn = assign_connection(sess, FALSE);
666 if (sess->s_refcount > 0) {
670 sess->s_refcount));
675 sess->s_terminating = status;
676 TAILQ_REMOVE(&iscsi_sessions, sess, s_sessions);
677 sess->s_sessions.tqe_next = NULL;
678 sess->s_sessions.tqe_prev = NULL;
684 if (sess->s_active_connections == 0)
690 while ((conn = TAILQ_FIRST(&sess->s_conn_list)) != NULL) {
717 create_connection(iscsi_login_parameters_t *par, session_t *sess,
723 DEB(1, ("Create Connection for Session %d\n", sess->s_id));
725 if (sess->s_MaxConnections &&
726 sess->s_active_connections >= sess->s_MaxConnections) {
728 sess->s_MaxConnections, sess->s_active_connections));
764 ++sess->s_conn_id;
765 } while (!sess->s_conn_id ||
766 find_connection(sess, sess->s_conn_id) != NULL);
767 par->connection_id = conn->c_id = sess->s_conn_id;
771 conn->c_session = sess;
861 if (sess->s_terminating) {
865 par->status = sess->s_terminating;
869 TAILQ_INSERT_TAIL(&sess->s_conn_list, conn, c_connections);
871 sess->s_total_connections++;
872 sess->s_active_connections++;
873 sess->s_mru_connection = conn;
896 recreate_connection(iscsi_login_parameters_t *par, session_t *sess,
909 if (sess->s_MaxConnections &&
910 sess->s_active_connections >= sess->s_MaxConnections) {
912 sess->s_MaxConnections, sess->s_active_connections));
951 sess->s_active_connections++;
980 sess->s_mru_connection = conn;
991 mutex_enter(&sess->s_lock);
992 if (sn_a_lt_b(ccb->ccb_CmdSN, sess->s_ExpCmdSN)) {
994 sn = get_sernum(sess, pdu);
1005 mutex_exit(&sess->s_lock);
1014 mutex_enter(&sess->s_lock);
1015 cv_broadcast(&sess->s_sess_cv);
1016 mutex_exit(&sess->s_lock);
1112 session_t *sess;
1127 sess = malloc(sizeof(*sess), M_DEVBUF, M_WAITOK | M_ZERO);
1128 if (sess == NULL) {
1133 TAILQ_INIT(&sess->s_conn_list);
1134 TAILQ_INIT(&sess->s_ccb_pool);
1136 mutex_init(&sess->s_lock, MUTEX_DEFAULT, IPL_BIO);
1137 cv_init(&sess->s_sess_cv, "session");
1138 cv_init(&sess->s_ccb_cv, "ccb");
1145 par->session_id = sess->s_id = current_id;
1148 create_ccbs(sess);
1149 sess->s_login_type = par->login_type;
1150 sess->s_CmdSN = 1;
1152 if ((rc = create_connection(par, sess, l)) != 0) {
1154 destroy_ccbs(sess);
1155 cv_destroy(&sess->s_ccb_cv);
1156 cv_destroy(&sess->s_sess_cv);
1157 mutex_destroy(&sess->s_lock);
1158 free(sess, M_DEVBUF);
1164 TAILQ_INSERT_HEAD(&iscsi_sessions, sess, s_sessions);
1169 copyinstr(par->TargetName, sess->s_tgtname,
1170 sizeof(sess->s_tgtname), NULL);
1171 DEB(1, ("Login: map session %d\n", sess->s_id));
1172 if (!map_session(sess, dev)) {
1173 DEB(1, ("Login: map session %d failed\n", sess->s_id));
1300 session_t *sess;
1307 if ((sess = find_session(par->session_id)) == NULL) {
1313 if ((conn = find_connection(sess, par->connection_id)) == NULL) {
1329 recreate_connection(par, sess, conn, l);
1439 session_t *sess;
1442 if ((sess = find_session(par->session_id)) == NULL) {
1451 par->response_size, sess->s_target_list));
1453 if (sess->s_target_list == NULL) {
1454 rc = send_send_targets(sess, par->key);
1460 rlen = sess->s_target_list_len;
1464 copyout(sess->s_target_list, par->response_buffer, cplen);
1470 free(sess->s_target_list, M_TEMP);
1471 sess->s_target_list = NULL;
1527 session_t *sess;
1530 if ((sess = find_session(par->session_id)) == NULL) {
1537 conn = find_connection(sess, par->connection_id);
1539 conn = TAILQ_FIRST(&sess->s_conn_list);
1579 session_t *sess;
1584 while ((sess = TAILQ_FIRST(&iscsi_sessions)) != NULL) {
1585 sid = sess->s_id;
1631 session_t *sess = NULL;
1635 sess = conn->c_session;
1638 TAILQ_REMOVE(&sess->s_conn_list, conn, c_connections);
1639 sess->s_mru_connection = TAILQ_FIRST(&sess->s_conn_list);
1738 session_t *sess, *nxts;
1750 sess = conn->c_session;
1790 if (--sess->s_total_connections == 0) {
1791 DEB(1, ("Cleanup: session %d\n", sess->s_id));
1792 if (!sess->s_terminating) {
1793 sess->s_terminating = ISCSI_CONNECTION_TERMINATED;
1794 KASSERT(sess->s_sessions.tqe_prev != NULL);
1795 TAILQ_REMOVE(&iscsi_sessions, sess, s_sessions);
1796 sess->s_sessions.tqe_next = NULL;
1797 sess->s_sessions.tqe_prev = NULL;
1799 KASSERT(sess->s_sessions.tqe_prev == NULL);
1800 TAILQ_INSERT_HEAD(&iscsi_cleanups_list, sess, s_sessions);
1804 TAILQ_FOREACH_SAFE(sess, &iscsi_cleanups_list, s_sessions, nxts) {
1805 if (sess->s_refcount > 0)
1807 TAILQ_REMOVE(&iscsi_cleanups_list, sess, s_sessions);
1808 sess->s_sessions.tqe_next = NULL;
1809 sess->s_sessions.tqe_prev = NULL;
1812 DEB(1, ("Cleanup: Unmap session %d\n", sess->s_id));
1813 if (unmap_session(sess) == 0) {
1814 DEB(1, ("Cleanup: Unmap session %d failed\n", sess->s_id));
1816 TAILQ_INSERT_HEAD(&iscsi_cleanups_list, sess, s_sessions);
1820 if (sess->s_target_list != NULL)
1821 free(sess->s_target_list, M_TEMP);
1824 add_event(ISCSI_SESSION_TERMINATED, sess->s_id, 0, sess->s_terminating);
1825 DEB(1, ("Cleanup: session ended %d\n", sess->s_id));
1827 destroy_ccbs(sess);
1828 cv_destroy(&sess->s_ccb_cv);
1829 cv_destroy(&sess->s_sess_cv);
1830 mutex_destroy(&sess->s_lock);
1831 free(sess, M_DEVBUF);