Lines Matching refs:sess
789 if (conn->sess->sess_ops->RDMAExtensions) in iscsit_ack_from_expstatsn()
836 atomic_long_inc(&conn->sess->cmd_pdus); in iscsit_setup_scsi_cmd()
894 if (payload_length && !conn->sess->sess_ops->ImmediateData) { in iscsit_setup_scsi_cmd()
926 if (payload_length > conn->sess->sess_ops->FirstBurstLength) { in iscsit_setup_scsi_cmd()
929 payload_length, conn->sess->sess_ops->FirstBurstLength); in iscsit_setup_scsi_cmd()
967 conn->sess->init_task_tag = cmd->init_task_tag = hdr->itt; in iscsit_setup_scsi_cmd()
969 cmd->targ_xfer_tag = session_get_next_ttt(conn->sess); in iscsit_setup_scsi_cmd()
976 if (!conn->sess->sess_ops->RDMAExtensions && in iscsit_setup_scsi_cmd()
992 conn->sess->se_sess, be32_to_cpu(hdr->data_length), in iscsit_setup_scsi_cmd()
1276 atomic_long_add(payload_length, &conn->sess->rx_data_octets); in iscsit_check_dataout_hdr()
1321 if (conn->sess->sess_ops->InitialR2T) { in iscsit_check_dataout_hdr()
1571 conn->sess->init_task_tag = cmd->init_task_tag = hdr->itt; in iscsit_setup_nop_out()
1701 if (!conn->sess->sess_ops->ErrorRecoveryLevel) { in iscsit_handle_nop_out()
1806 conn->sess->se_sess, 0, DMA_NONE, in iscsit_handle_task_mgt_cmd()
1988 conn->sess->init_task_tag = cmd->init_task_tag = hdr->itt; in iscsit_setup_text_cmd()
2120 if (!conn->sess->sess_ops->ErrorRecoveryLevel) { in iscsit_handle_text_cmd()
2158 struct iscsi_session *sess = conn->sess; in iscsit_logout_closesession() local
2161 " for SID: %u.\n", conn->cid, conn->sess->sid); in iscsit_logout_closesession()
2163 atomic_set(&sess->session_logout, 1); in iscsit_logout_closesession()
2168 iscsit_inc_session_usage_count(sess); in iscsit_logout_closesession()
2170 spin_lock_bh(&sess->conn_lock); in iscsit_logout_closesession()
2171 list_for_each_entry(conn_p, &sess->sess_conn_list, conn_list) { in iscsit_logout_closesession()
2178 spin_unlock_bh(&sess->conn_lock); in iscsit_logout_closesession()
2188 struct iscsi_session *sess = conn->sess; in iscsit_logout_closeconnection() local
2216 l_conn = iscsit_get_conn_from_cid(sess, in iscsit_logout_closeconnection()
2235 struct iscsi_session *sess = conn->sess; in iscsit_logout_removeconnforrecovery() local
2240 if (sess->sess_ops->ErrorRecoveryLevel != 2) { in iscsit_logout_removeconnforrecovery()
2298 conn->sess->init_task_tag = cmd->init_task_tag = hdr->itt; in iscsit_handle_logout_cmd()
2357 if (!conn->sess->sess_ops->ErrorRecoveryLevel) { in iscsit_handle_snack()
2459 if (!conn->sess->sess_ops->ErrorRecoveryLevel) { in iscsit_handle_immediate_data()
2507 list_for_each_entry(conn_p, &conn->sess->sess_conn_list, conn_list) { in iscsit_build_conn_drop_async_message()
2553 hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn); in iscsit_send_conn_drop_async_message()
2554 hdr->max_cmdsn = cpu_to_be32(conn->sess->max_cmd_sn); in iscsit_send_conn_drop_async_message()
2557 hdr->param2 = cpu_to_be16(conn->sess->sess_ops->DefaultTime2Wait); in iscsit_send_conn_drop_async_message()
2558 hdr->param3 = cpu_to_be16(conn->sess->sess_ops->DefaultTime2Retain); in iscsit_send_conn_drop_async_message()
2625 hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn); in iscsit_build_datain_pdu()
2626 hdr->max_cmdsn = cpu_to_be32(conn->sess->max_cmd_sn); in iscsit_build_datain_pdu()
2664 atomic_long_add(datain.length, &conn->sess->tx_data_octets); in iscsit_send_datain()
2675 iscsit_increment_maxcmdsn(cmd, conn->sess); in iscsit_send_datain()
2763 struct iscsi_session *sess = conn->sess; in iscsit_build_logout_rsp() local
2802 logout_conn = iscsit_get_conn_from_cid_rcfr(sess, in iscsit_build_logout_rsp()
2810 conn->sess, cmd->logout_cid); in iscsit_build_logout_rsp()
2839 iscsit_increment_maxcmdsn(cmd, conn->sess); in iscsit_build_logout_rsp()
2840 hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn); in iscsit_build_logout_rsp()
2841 hdr->max_cmdsn = cpu_to_be32(conn->sess->max_cmd_sn); in iscsit_build_logout_rsp()
2901 iscsit_increment_maxcmdsn(cmd, conn->sess); in iscsit_build_nopin_rsp()
2903 hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn); in iscsit_build_nopin_rsp()
2904 hdr->max_cmdsn = cpu_to_be32(conn->sess->max_cmd_sn); in iscsit_build_nopin_rsp()
3047 r2t->targ_xfer_tag = session_get_next_ttt(conn->sess); in iscsit_send_r2t()
3050 hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn); in iscsit_send_r2t()
3051 hdr->max_cmdsn = cpu_to_be32(conn->sess->max_cmd_sn); in iscsit_send_r2t()
3116 if (conn->sess->sess_ops->DataSequenceInOrder && in iscsit_build_r2ts_for_cmd()
3120 while (cmd->outstanding_r2ts < conn->sess->sess_ops->MaxOutstandingR2T) { in iscsit_build_r2ts_for_cmd()
3121 if (conn->sess->sess_ops->DataSequenceInOrder) { in iscsit_build_r2ts_for_cmd()
3126 conn->sess->sess_ops->MaxBurstLength - in iscsit_build_r2ts_for_cmd()
3133 conn->sess->sess_ops->MaxBurstLength - in iscsit_build_r2ts_for_cmd()
3137 conn->sess->sess_ops->MaxBurstLength; in iscsit_build_r2ts_for_cmd()
3142 xfer_len = conn->sess->sess_ops->MaxBurstLength; in iscsit_build_r2ts_for_cmd()
3185 atomic_long_inc(&conn->sess->rsp_pdus); in iscsit_build_rsp_pdu()
3202 iscsit_increment_maxcmdsn(cmd, conn->sess); in iscsit_build_rsp_pdu()
3203 hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn); in iscsit_build_rsp_pdu()
3204 hdr->max_cmdsn = cpu_to_be32(conn->sess->max_cmd_sn); in iscsit_build_rsp_pdu()
3321 iscsit_increment_maxcmdsn(cmd, conn->sess); in iscsit_build_task_mgt_rsp()
3322 hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn); in iscsit_build_task_mgt_rsp()
3323 hdr->max_cmdsn = cpu_to_be32(conn->sess->max_cmd_sn); in iscsit_build_task_mgt_rsp()
3449 cmd->conn->sess->sess_ops->InitiatorName))) { in iscsit_build_sendtargets_response()
3562 cmd->targ_xfer_tag = session_get_next_ttt(conn->sess); in iscsit_build_text_rsp()
3572 iscsit_increment_maxcmdsn(cmd, conn->sess); in iscsit_build_text_rsp()
3579 hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn); in iscsit_build_text_rsp()
3580 hdr->max_cmdsn = cpu_to_be32(conn->sess->max_cmd_sn); in iscsit_build_text_rsp()
3657 hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn); in iscsit_build_reject()
3658 hdr->max_cmdsn = cpu_to_be32(conn->sess->max_cmd_sn); in iscsit_build_reject()
3888 iscsit_fall_back_to_erl0(conn->sess); in iscsit_response_queue()
4074 if (!conn->sess->sess_ops->ErrorRecoveryLevel) { in iscsi_target_rx_opcode()
4182 atomic_long_inc(&conn->sess->conn_digest_errors); in iscsi_target_rx_thread()
4194 if (conn->sess->sess_ops->SessionType && in iscsi_target_rx_thread()
4219 struct iscsi_session *sess = conn->sess; in iscsit_release_commands_from_conn() local
4231 iscsit_increment_maxcmdsn(cmd, sess); in iscsit_release_commands_from_conn()
4257 struct iscsi_session *sess = conn->sess; in iscsit_close_connection() local
4260 " %u\n", conn->cid, sess->sid); in iscsit_close_connection()
4326 iscsit_dec_session_usage_count(sess); in iscsit_close_connection()
4332 atomic_set(&sess->session_reinstatement, 0); in iscsit_close_connection()
4333 atomic_set(&sess->session_fall_back_to_erl0, 1); in iscsit_close_connection()
4336 spin_lock_bh(&sess->conn_lock); in iscsit_close_connection()
4347 spin_unlock_bh(&sess->conn_lock); in iscsit_close_connection()
4405 spin_lock_bh(&sess->conn_lock); in iscsit_close_connection()
4406 atomic_dec(&sess->nconn); in iscsit_close_connection()
4408 " %s\n", atomic_read(&sess->nconn), in iscsit_close_connection()
4409 sess->sess_ops->InitiatorName); in iscsit_close_connection()
4414 if ((sess->sess_ops->ErrorRecoveryLevel != 2) && !conn_logout && in iscsit_close_connection()
4415 !atomic_read(&sess->session_logout)) in iscsit_close_connection()
4416 atomic_set(&sess->session_fall_back_to_erl0, 1); in iscsit_close_connection()
4424 if (atomic_read(&sess->nconn)) { in iscsit_close_connection()
4425 if (!atomic_read(&sess->session_reinstatement) && in iscsit_close_connection()
4426 !atomic_read(&sess->session_fall_back_to_erl0)) { in iscsit_close_connection()
4427 spin_unlock_bh(&sess->conn_lock); in iscsit_close_connection()
4430 if (!atomic_read(&sess->session_stop_active)) { in iscsit_close_connection()
4431 atomic_set(&sess->session_stop_active, 1); in iscsit_close_connection()
4432 spin_unlock_bh(&sess->conn_lock); in iscsit_close_connection()
4433 iscsit_stop_session(sess, 0, 0); in iscsit_close_connection()
4436 spin_unlock_bh(&sess->conn_lock); in iscsit_close_connection()
4453 if (!atomic_read(&sess->session_reinstatement) && in iscsit_close_connection()
4454 atomic_read(&sess->session_fall_back_to_erl0)) { in iscsit_close_connection()
4455 spin_unlock_bh(&sess->conn_lock); in iscsit_close_connection()
4456 target_put_session(sess->se_sess); in iscsit_close_connection()
4459 } else if (atomic_read(&sess->session_logout)) { in iscsit_close_connection()
4461 sess->session_state = TARG_SESS_STATE_FREE; in iscsit_close_connection()
4462 spin_unlock_bh(&sess->conn_lock); in iscsit_close_connection()
4464 if (atomic_read(&sess->sleep_on_sess_wait_comp)) in iscsit_close_connection()
4465 complete(&sess->session_wait_comp); in iscsit_close_connection()
4470 sess->session_state = TARG_SESS_STATE_FAILED; in iscsit_close_connection()
4472 if (!atomic_read(&sess->session_continuation)) { in iscsit_close_connection()
4473 spin_unlock_bh(&sess->conn_lock); in iscsit_close_connection()
4474 iscsit_start_time2retain_handler(sess); in iscsit_close_connection()
4476 spin_unlock_bh(&sess->conn_lock); in iscsit_close_connection()
4478 if (atomic_read(&sess->sleep_on_sess_wait_comp)) in iscsit_close_connection()
4479 complete(&sess->session_wait_comp); in iscsit_close_connection()
4483 spin_unlock_bh(&sess->conn_lock); in iscsit_close_connection()
4488 int iscsit_close_session(struct iscsi_session *sess) in iscsit_close_session() argument
4490 struct iscsi_portal_group *tpg = sess->tpg; in iscsit_close_session()
4493 if (atomic_read(&sess->nconn)) { in iscsit_close_session()
4495 " to %s\n", atomic_read(&sess->nconn), in iscsit_close_session()
4496 sess->sess_ops->InitiatorName); in iscsit_close_session()
4501 atomic_set(&sess->session_logout, 1); in iscsit_close_session()
4502 atomic_set(&sess->session_reinstatement, 1); in iscsit_close_session()
4503 iscsit_stop_time2retain_timer(sess); in iscsit_close_session()
4513 transport_deregister_session_configfs(sess->se_sess); in iscsit_close_session()
4522 if (iscsit_check_session_usage_count(sess) == 1) in iscsit_close_session()
4523 iscsit_stop_session(sess, 1, 1); in iscsit_close_session()
4525 if (iscsit_check_session_usage_count(sess) == 2) { in iscsit_close_session()
4526 atomic_set(&sess->session_logout, 0); in iscsit_close_session()
4527 iscsit_start_time2retain_handler(sess); in iscsit_close_session()
4532 transport_deregister_session(sess->se_sess); in iscsit_close_session()
4534 if (sess->sess_ops->ErrorRecoveryLevel == 2) in iscsit_close_session()
4535 iscsit_free_connection_recovery_entires(sess); in iscsit_close_session()
4537 iscsit_free_all_ooo_cmdsns(sess); in iscsit_close_session()
4541 sess->session_state = TARG_SESS_STATE_FREE; in iscsit_close_session()
4543 sess->sess_ops->InitiatorName); in iscsit_close_session()
4552 idr_remove(&sess_idr, sess->session_index); in iscsit_close_session()
4555 kfree(sess->sess_ops); in iscsit_close_session()
4556 sess->sess_ops = NULL; in iscsit_close_session()
4559 kfree(sess); in iscsit_close_session()
4566 struct iscsi_session *sess = conn->sess; in iscsit_logout_post_handler_closesession() local
4584 iscsit_stop_session(sess, sleep, sleep); in iscsit_logout_post_handler_closesession()
4585 iscsit_dec_session_usage_count(sess); in iscsit_logout_post_handler_closesession()
4586 target_put_session(sess->se_sess); in iscsit_logout_post_handler_closesession()
4609 struct iscsi_session *sess = conn->sess; in iscsit_logout_post_handler_diffcid() local
4612 if (!sess) in iscsit_logout_post_handler_diffcid()
4615 spin_lock_bh(&sess->conn_lock); in iscsit_logout_post_handler_diffcid()
4616 list_for_each_entry(l_conn, &sess->sess_conn_list, conn_list) { in iscsit_logout_post_handler_diffcid()
4623 spin_unlock_bh(&sess->conn_lock); in iscsit_logout_post_handler_diffcid()
4703 void iscsit_fail_session(struct iscsi_session *sess) in iscsit_fail_session() argument
4707 spin_lock_bh(&sess->conn_lock); in iscsit_fail_session()
4708 list_for_each_entry(conn, &sess->sess_conn_list, conn_list) { in iscsit_fail_session()
4712 spin_unlock_bh(&sess->conn_lock); in iscsit_fail_session()
4715 sess->session_state = TARG_SESS_STATE_FAILED; in iscsit_fail_session()
4718 int iscsit_free_session(struct iscsi_session *sess) in iscsit_free_session() argument
4720 u16 conn_count = atomic_read(&sess->nconn); in iscsit_free_session()
4724 spin_lock_bh(&sess->conn_lock); in iscsit_free_session()
4725 atomic_set(&sess->sleep_on_sess_wait_comp, 1); in iscsit_free_session()
4727 list_for_each_entry_safe(conn, conn_tmp, &sess->sess_conn_list, in iscsit_free_session()
4732 if (list_is_last(&conn->conn_list, &sess->sess_conn_list)) { in iscsit_free_session()
4740 spin_unlock_bh(&sess->conn_lock); in iscsit_free_session()
4742 spin_lock_bh(&sess->conn_lock); in iscsit_free_session()
4751 if (atomic_read(&sess->nconn)) { in iscsit_free_session()
4752 spin_unlock_bh(&sess->conn_lock); in iscsit_free_session()
4753 wait_for_completion(&sess->session_wait_comp); in iscsit_free_session()
4755 spin_unlock_bh(&sess->conn_lock); in iscsit_free_session()
4757 target_put_session(sess->se_sess); in iscsit_free_session()
4762 struct iscsi_session *sess, in iscsit_stop_session() argument
4766 u16 conn_count = atomic_read(&sess->nconn); in iscsit_stop_session()
4770 spin_lock_bh(&sess->conn_lock); in iscsit_stop_session()
4772 atomic_set(&sess->sleep_on_sess_wait_comp, 1); in iscsit_stop_session()
4775 list_for_each_entry_safe(conn, conn_tmp, &sess->sess_conn_list, in iscsit_stop_session()
4780 if (list_is_last(&conn->conn_list, &sess->sess_conn_list)) { in iscsit_stop_session()
4788 spin_unlock_bh(&sess->conn_lock); in iscsit_stop_session()
4790 spin_lock_bh(&sess->conn_lock); in iscsit_stop_session()
4798 list_for_each_entry(conn, &sess->sess_conn_list, conn_list) in iscsit_stop_session()
4802 if (session_sleep && atomic_read(&sess->nconn)) { in iscsit_stop_session()
4803 spin_unlock_bh(&sess->conn_lock); in iscsit_stop_session()
4804 wait_for_completion(&sess->session_wait_comp); in iscsit_stop_session()
4806 spin_unlock_bh(&sess->conn_lock); in iscsit_stop_session()
4811 struct iscsi_session *sess; in iscsit_release_sessions_for_tpg() local
4825 sess = (struct iscsi_session *)se_sess->fabric_sess_ptr; in iscsit_release_sessions_for_tpg()
4827 spin_lock(&sess->conn_lock); in iscsit_release_sessions_for_tpg()
4828 if (atomic_read(&sess->session_fall_back_to_erl0) || in iscsit_release_sessions_for_tpg()
4829 atomic_read(&sess->session_logout) || in iscsit_release_sessions_for_tpg()
4830 (sess->time2retain_timer_flags & ISCSI_TF_EXPIRED)) { in iscsit_release_sessions_for_tpg()
4831 spin_unlock(&sess->conn_lock); in iscsit_release_sessions_for_tpg()
4834 atomic_set(&sess->session_reinstatement, 1); in iscsit_release_sessions_for_tpg()
4835 spin_unlock(&sess->conn_lock); in iscsit_release_sessions_for_tpg()
4842 sess = (struct iscsi_session *)se_sess->fabric_sess_ptr; in iscsit_release_sessions_for_tpg()
4844 iscsit_free_session(sess); in iscsit_release_sessions_for_tpg()