Lines Matching refs:sess
958 if (conn->sess->sess_ops->RDMAExtensions) in iscsit_ack_from_expstatsn()
1002 atomic_long_inc(&conn->sess->cmd_pdus); in iscsit_setup_scsi_cmd()
1060 if (payload_length && !conn->sess->sess_ops->ImmediateData) { in iscsit_setup_scsi_cmd()
1092 if (payload_length > conn->sess->sess_ops->FirstBurstLength) { in iscsit_setup_scsi_cmd()
1095 payload_length, conn->sess->sess_ops->FirstBurstLength); in iscsit_setup_scsi_cmd()
1133 conn->sess->init_task_tag = cmd->init_task_tag = hdr->itt; in iscsit_setup_scsi_cmd()
1135 cmd->targ_xfer_tag = session_get_next_ttt(conn->sess); in iscsit_setup_scsi_cmd()
1142 if (!conn->sess->sess_ops->RDMAExtensions && in iscsit_setup_scsi_cmd()
1158 conn->sess->se_sess, be32_to_cpu(hdr->data_length), in iscsit_setup_scsi_cmd()
1458 atomic_long_add(payload_length, &conn->sess->rx_data_octets); in __iscsit_check_dataout_hdr()
1490 if (conn->sess->sess_ops->InitialR2T) { in __iscsit_check_dataout_hdr()
1772 conn->sess->init_task_tag = cmd->init_task_tag = hdr->itt; in iscsit_setup_nop_out()
1904 if (!conn->sess->sess_ops->ErrorRecoveryLevel) { in iscsit_handle_nop_out()
2018 conn->sess->se_sess, 0, DMA_NONE, in iscsit_handle_task_mgt_cmd()
2180 conn->sess->init_task_tag = cmd->init_task_tag = hdr->itt; in iscsit_setup_text_cmd()
2306 if (!conn->sess->sess_ops->ErrorRecoveryLevel) { in iscsit_handle_text_cmd()
2344 struct iscsi_session *sess = conn->sess; in iscsit_logout_closesession() local
2347 " for SID: %u.\n", conn->cid, conn->sess->sid); in iscsit_logout_closesession()
2349 atomic_set(&sess->session_logout, 1); in iscsit_logout_closesession()
2354 iscsit_inc_session_usage_count(sess); in iscsit_logout_closesession()
2356 spin_lock_bh(&sess->conn_lock); in iscsit_logout_closesession()
2357 list_for_each_entry(conn_p, &sess->sess_conn_list, conn_list) { in iscsit_logout_closesession()
2364 spin_unlock_bh(&sess->conn_lock); in iscsit_logout_closesession()
2374 struct iscsi_session *sess = conn->sess; in iscsit_logout_closeconnection() local
2402 l_conn = iscsit_get_conn_from_cid(sess, in iscsit_logout_closeconnection()
2421 struct iscsi_session *sess = conn->sess; in iscsit_logout_removeconnforrecovery() local
2426 if (sess->sess_ops->ErrorRecoveryLevel != 2) { in iscsit_logout_removeconnforrecovery()
2484 conn->sess->init_task_tag = cmd->init_task_tag = hdr->itt; in iscsit_handle_logout_cmd()
2543 if (!conn->sess->sess_ops->ErrorRecoveryLevel) { in iscsit_handle_snack()
2667 if (!conn->sess->sess_ops->ErrorRecoveryLevel) { in iscsit_handle_immediate_data()
2708 lockdep_assert_held(&conn->sess->conn_lock); in iscsit_build_conn_drop_async_message()
2714 list_for_each_entry(conn_p, &conn->sess->sess_conn_list, conn_list) { in iscsit_build_conn_drop_async_message()
2759 hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn); in iscsit_send_conn_drop_async_message()
2760 hdr->max_cmdsn = cpu_to_be32((u32) atomic_read(&conn->sess->max_cmd_sn)); in iscsit_send_conn_drop_async_message()
2763 hdr->param2 = cpu_to_be16(conn->sess->sess_ops->DefaultTime2Wait); in iscsit_send_conn_drop_async_message()
2764 hdr->param3 = cpu_to_be16(conn->sess->sess_ops->DefaultTime2Retain); in iscsit_send_conn_drop_async_message()
2817 hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn); in iscsit_build_datain_pdu()
2818 hdr->max_cmdsn = cpu_to_be32((u32) atomic_read(&conn->sess->max_cmd_sn)); in iscsit_build_datain_pdu()
2855 atomic_long_add(datain.length, &conn->sess->tx_data_octets); in iscsit_send_datain()
2866 iscsit_increment_maxcmdsn(cmd, conn->sess); in iscsit_send_datain()
2895 struct iscsi_session *sess = conn->sess; in iscsit_build_logout_rsp() local
2934 logout_conn = iscsit_get_conn_from_cid_rcfr(sess, in iscsit_build_logout_rsp()
2942 conn->sess, cmd->logout_cid); in iscsit_build_logout_rsp()
2971 iscsit_increment_maxcmdsn(cmd, conn->sess); in iscsit_build_logout_rsp()
2972 hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn); in iscsit_build_logout_rsp()
2973 hdr->max_cmdsn = cpu_to_be32((u32) atomic_read(&conn->sess->max_cmd_sn)); in iscsit_build_logout_rsp()
3013 iscsit_increment_maxcmdsn(cmd, conn->sess); in iscsit_build_nopin_rsp()
3015 hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn); in iscsit_build_nopin_rsp()
3016 hdr->max_cmdsn = cpu_to_be32((u32) atomic_read(&conn->sess->max_cmd_sn)); in iscsit_build_nopin_rsp()
3093 r2t->targ_xfer_tag = session_get_next_ttt(conn->sess); in iscsit_send_r2t()
3096 hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn); in iscsit_send_r2t()
3097 hdr->max_cmdsn = cpu_to_be32((u32) atomic_read(&conn->sess->max_cmd_sn)); in iscsit_send_r2t()
3142 if (conn->sess->sess_ops->DataSequenceInOrder && in iscsit_build_r2ts_for_cmd()
3146 while (cmd->outstanding_r2ts < conn->sess->sess_ops->MaxOutstandingR2T) { in iscsit_build_r2ts_for_cmd()
3147 if (conn->sess->sess_ops->DataSequenceInOrder) { in iscsit_build_r2ts_for_cmd()
3152 conn->sess->sess_ops->MaxBurstLength - in iscsit_build_r2ts_for_cmd()
3159 conn->sess->sess_ops->MaxBurstLength - in iscsit_build_r2ts_for_cmd()
3163 conn->sess->sess_ops->MaxBurstLength; in iscsit_build_r2ts_for_cmd()
3168 xfer_len = conn->sess->sess_ops->MaxBurstLength; in iscsit_build_r2ts_for_cmd()
3218 atomic_long_inc(&conn->sess->rsp_pdus); in iscsit_build_rsp_pdu()
3235 iscsit_increment_maxcmdsn(cmd, conn->sess); in iscsit_build_rsp_pdu()
3236 hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn); in iscsit_build_rsp_pdu()
3237 hdr->max_cmdsn = cpu_to_be32((u32) atomic_read(&conn->sess->max_cmd_sn)); in iscsit_build_rsp_pdu()
3315 iscsit_increment_maxcmdsn(cmd, conn->sess); in iscsit_build_task_mgt_rsp()
3316 hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn); in iscsit_build_task_mgt_rsp()
3317 hdr->max_cmdsn = cpu_to_be32((u32) atomic_read(&conn->sess->max_cmd_sn)); in iscsit_build_task_mgt_rsp()
3398 cmd->conn->sess->sess_ops->InitiatorName))) { in iscsit_build_sendtargets_response()
3507 cmd->targ_xfer_tag = session_get_next_ttt(conn->sess); in iscsit_build_text_rsp()
3517 iscsit_increment_maxcmdsn(cmd, conn->sess); in iscsit_build_text_rsp()
3524 hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn); in iscsit_build_text_rsp()
3525 hdr->max_cmdsn = cpu_to_be32((u32) atomic_read(&conn->sess->max_cmd_sn)); in iscsit_build_text_rsp()
3565 hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn); in iscsit_build_reject()
3566 hdr->max_cmdsn = cpu_to_be32((u32) atomic_read(&conn->sess->max_cmd_sn)); in iscsit_build_reject()
3737 iscsit_fall_back_to_erl0(conn->sess); in iscsit_response_queue()
3926 if (!conn->sess->sess_ops->ErrorRecoveryLevel) { in iscsi_target_rx_opcode()
4005 atomic_long_inc(&conn->sess->conn_digest_errors); in iscsit_get_rx_pdu()
4017 if (conn->sess->sess_ops->SessionType && in iscsit_get_rx_pdu()
4077 struct iscsi_session *sess = conn->sess; in iscsit_release_commands_from_conn() local
4112 iscsit_increment_maxcmdsn(cmd, sess); in iscsit_release_commands_from_conn()
4135 struct iscsi_session *sess = conn->sess; in iscsit_close_connection() local
4138 " %u\n", conn->cid, sess->sid); in iscsit_close_connection()
4205 iscsit_dec_session_usage_count(sess); in iscsit_close_connection()
4211 atomic_set(&sess->session_reinstatement, 0); in iscsit_close_connection()
4212 atomic_set(&sess->session_fall_back_to_erl0, 1); in iscsit_close_connection()
4215 spin_lock_bh(&sess->conn_lock); in iscsit_close_connection()
4226 spin_unlock_bh(&sess->conn_lock); in iscsit_close_connection()
4281 spin_lock_bh(&sess->conn_lock); in iscsit_close_connection()
4282 atomic_dec(&sess->nconn); in iscsit_close_connection()
4284 " %s\n", atomic_read(&sess->nconn), in iscsit_close_connection()
4285 sess->sess_ops->InitiatorName); in iscsit_close_connection()
4290 if ((sess->sess_ops->ErrorRecoveryLevel != 2) && !conn_logout && in iscsit_close_connection()
4291 !atomic_read(&sess->session_logout)) in iscsit_close_connection()
4292 atomic_set(&sess->session_fall_back_to_erl0, 1); in iscsit_close_connection()
4300 if (atomic_read(&sess->nconn)) { in iscsit_close_connection()
4301 if (!atomic_read(&sess->session_reinstatement) && in iscsit_close_connection()
4302 !atomic_read(&sess->session_fall_back_to_erl0)) { in iscsit_close_connection()
4303 spin_unlock_bh(&sess->conn_lock); in iscsit_close_connection()
4306 if (!atomic_read(&sess->session_stop_active)) { in iscsit_close_connection()
4307 atomic_set(&sess->session_stop_active, 1); in iscsit_close_connection()
4308 spin_unlock_bh(&sess->conn_lock); in iscsit_close_connection()
4309 iscsit_stop_session(sess, 0, 0); in iscsit_close_connection()
4312 spin_unlock_bh(&sess->conn_lock); in iscsit_close_connection()
4329 if (!atomic_read(&sess->session_reinstatement) && in iscsit_close_connection()
4330 atomic_read(&sess->session_fall_back_to_erl0)) { in iscsit_close_connection()
4331 spin_unlock_bh(&sess->conn_lock); in iscsit_close_connection()
4332 complete_all(&sess->session_wait_comp); in iscsit_close_connection()
4333 iscsit_close_session(sess, true); in iscsit_close_connection()
4336 } else if (atomic_read(&sess->session_logout)) { in iscsit_close_connection()
4338 sess->session_state = TARG_SESS_STATE_FREE; in iscsit_close_connection()
4340 if (atomic_read(&sess->session_close)) { in iscsit_close_connection()
4341 spin_unlock_bh(&sess->conn_lock); in iscsit_close_connection()
4342 complete_all(&sess->session_wait_comp); in iscsit_close_connection()
4343 iscsit_close_session(sess, true); in iscsit_close_connection()
4345 spin_unlock_bh(&sess->conn_lock); in iscsit_close_connection()
4351 sess->session_state = TARG_SESS_STATE_FAILED; in iscsit_close_connection()
4353 if (!atomic_read(&sess->session_continuation)) in iscsit_close_connection()
4354 iscsit_start_time2retain_handler(sess); in iscsit_close_connection()
4356 if (atomic_read(&sess->session_close)) { in iscsit_close_connection()
4357 spin_unlock_bh(&sess->conn_lock); in iscsit_close_connection()
4358 complete_all(&sess->session_wait_comp); in iscsit_close_connection()
4359 iscsit_close_session(sess, true); in iscsit_close_connection()
4361 spin_unlock_bh(&sess->conn_lock); in iscsit_close_connection()
4372 int iscsit_close_session(struct iscsi_session *sess, bool can_sleep) in iscsit_close_session() argument
4374 struct iscsi_portal_group *tpg = sess->tpg; in iscsit_close_session()
4377 if (atomic_read(&sess->nconn)) { in iscsit_close_session()
4379 " to %s\n", atomic_read(&sess->nconn), in iscsit_close_session()
4380 sess->sess_ops->InitiatorName); in iscsit_close_session()
4385 atomic_set(&sess->session_logout, 1); in iscsit_close_session()
4386 atomic_set(&sess->session_reinstatement, 1); in iscsit_close_session()
4387 iscsit_stop_time2retain_timer(sess); in iscsit_close_session()
4390 if (sess->sess_ops->ErrorRecoveryLevel == 2) in iscsit_close_session()
4391 iscsit_free_connection_recovery_entries(sess); in iscsit_close_session()
4400 transport_deregister_session_configfs(sess->se_sess); in iscsit_close_session()
4408 if (iscsit_check_session_usage_count(sess, can_sleep)) { in iscsit_close_session()
4409 atomic_set(&sess->session_logout, 0); in iscsit_close_session()
4410 iscsit_start_time2retain_handler(sess); in iscsit_close_session()
4414 transport_deregister_session(sess->se_sess); in iscsit_close_session()
4416 iscsit_free_all_ooo_cmdsns(sess); in iscsit_close_session()
4420 sess->session_state = TARG_SESS_STATE_FREE; in iscsit_close_session()
4422 sess->sess_ops->InitiatorName); in iscsit_close_session()
4430 ida_free(&sess_ida, sess->session_index); in iscsit_close_session()
4431 kfree(sess->sess_ops); in iscsit_close_session()
4432 sess->sess_ops = NULL; in iscsit_close_session()
4435 kfree(sess); in iscsit_close_session()
4442 struct iscsi_session *sess = conn->sess; in iscsit_logout_post_handler_closesession() local
4463 atomic_set(&sess->session_close, 1); in iscsit_logout_post_handler_closesession()
4464 iscsit_stop_session(sess, sleep, sleep); in iscsit_logout_post_handler_closesession()
4465 iscsit_dec_session_usage_count(sess); in iscsit_logout_post_handler_closesession()
4491 struct iscsi_session *sess = conn->sess; in iscsit_logout_post_handler_diffcid() local
4494 if (!sess) in iscsit_logout_post_handler_diffcid()
4497 spin_lock_bh(&sess->conn_lock); in iscsit_logout_post_handler_diffcid()
4498 list_for_each_entry(l_conn, &sess->sess_conn_list, conn_list) { in iscsit_logout_post_handler_diffcid()
4505 spin_unlock_bh(&sess->conn_lock); in iscsit_logout_post_handler_diffcid()
4583 void iscsit_fail_session(struct iscsi_session *sess) in iscsit_fail_session() argument
4587 spin_lock_bh(&sess->conn_lock); in iscsit_fail_session()
4588 list_for_each_entry(conn, &sess->sess_conn_list, conn_list) { in iscsit_fail_session()
4592 spin_unlock_bh(&sess->conn_lock); in iscsit_fail_session()
4595 sess->session_state = TARG_SESS_STATE_FAILED; in iscsit_fail_session()
4599 struct iscsi_session *sess, in iscsit_stop_session() argument
4603 u16 conn_count = atomic_read(&sess->nconn); in iscsit_stop_session()
4607 spin_lock_bh(&sess->conn_lock); in iscsit_stop_session()
4610 list_for_each_entry_safe(conn, conn_tmp, &sess->sess_conn_list, in iscsit_stop_session()
4615 if (list_is_last(&conn->conn_list, &sess->sess_conn_list)) { in iscsit_stop_session()
4623 spin_unlock_bh(&sess->conn_lock); in iscsit_stop_session()
4625 spin_lock_bh(&sess->conn_lock); in iscsit_stop_session()
4633 list_for_each_entry(conn, &sess->sess_conn_list, conn_list) in iscsit_stop_session()
4637 if (session_sleep && atomic_read(&sess->nconn)) { in iscsit_stop_session()
4638 spin_unlock_bh(&sess->conn_lock); in iscsit_stop_session()
4639 wait_for_completion(&sess->session_wait_comp); in iscsit_stop_session()
4641 spin_unlock_bh(&sess->conn_lock); in iscsit_stop_session()
4646 struct iscsi_session *sess; in iscsit_release_sessions_for_tpg() local
4660 sess = (struct iscsi_session *)se_sess->fabric_sess_ptr; in iscsit_release_sessions_for_tpg()
4662 spin_lock(&sess->conn_lock); in iscsit_release_sessions_for_tpg()
4663 if (atomic_read(&sess->session_fall_back_to_erl0) || in iscsit_release_sessions_for_tpg()
4664 atomic_read(&sess->session_logout) || in iscsit_release_sessions_for_tpg()
4665 atomic_read(&sess->session_close) || in iscsit_release_sessions_for_tpg()
4666 (sess->time2retain_timer_flags & ISCSI_TF_EXPIRED)) { in iscsit_release_sessions_for_tpg()
4667 spin_unlock(&sess->conn_lock); in iscsit_release_sessions_for_tpg()
4670 iscsit_inc_session_usage_count(sess); in iscsit_release_sessions_for_tpg()
4671 atomic_set(&sess->session_reinstatement, 1); in iscsit_release_sessions_for_tpg()
4672 atomic_set(&sess->session_fall_back_to_erl0, 1); in iscsit_release_sessions_for_tpg()
4673 atomic_set(&sess->session_close, 1); in iscsit_release_sessions_for_tpg()
4674 spin_unlock(&sess->conn_lock); in iscsit_release_sessions_for_tpg()
4681 sess = (struct iscsi_session *)se_sess->fabric_sess_ptr; in iscsit_release_sessions_for_tpg()
4684 iscsit_stop_session(sess, 1, 1); in iscsit_release_sessions_for_tpg()
4685 iscsit_dec_session_usage_count(sess); in iscsit_release_sessions_for_tpg()