Lines Matching refs:sess

781 	if (conn->sess->sess_ops->RDMAExtensions)  in iscsit_ack_from_expstatsn()
828 atomic_long_inc(&conn->sess->cmd_pdus); in iscsit_setup_scsi_cmd()
886 if (payload_length && !conn->sess->sess_ops->ImmediateData) { in iscsit_setup_scsi_cmd()
918 if (payload_length > conn->sess->sess_ops->FirstBurstLength) { in iscsit_setup_scsi_cmd()
921 payload_length, conn->sess->sess_ops->FirstBurstLength); in iscsit_setup_scsi_cmd()
959 conn->sess->init_task_tag = cmd->init_task_tag = hdr->itt; in iscsit_setup_scsi_cmd()
961 cmd->targ_xfer_tag = session_get_next_ttt(conn->sess); in iscsit_setup_scsi_cmd()
968 if (!conn->sess->sess_ops->RDMAExtensions && in iscsit_setup_scsi_cmd()
984 conn->sess->se_sess, be32_to_cpu(hdr->data_length), in iscsit_setup_scsi_cmd()
1269 atomic_long_add(payload_length, &conn->sess->rx_data_octets); in iscsit_check_dataout_hdr()
1314 if (conn->sess->sess_ops->InitialR2T) { in iscsit_check_dataout_hdr()
1564 conn->sess->init_task_tag = cmd->init_task_tag = hdr->itt; in iscsit_setup_nop_out()
1694 if (!conn->sess->sess_ops->ErrorRecoveryLevel) { in iscsit_handle_nop_out()
1799 conn->sess->se_sess, 0, DMA_NONE, in iscsit_handle_task_mgt_cmd()
1981 conn->sess->init_task_tag = cmd->init_task_tag = hdr->itt; in iscsit_setup_text_cmd()
2113 if (!conn->sess->sess_ops->ErrorRecoveryLevel) { in iscsit_handle_text_cmd()
2151 struct iscsi_session *sess = conn->sess; in iscsit_logout_closesession() local
2154 " for SID: %u.\n", conn->cid, conn->sess->sid); in iscsit_logout_closesession()
2156 atomic_set(&sess->session_logout, 1); in iscsit_logout_closesession()
2161 iscsit_inc_session_usage_count(sess); in iscsit_logout_closesession()
2163 spin_lock_bh(&sess->conn_lock); in iscsit_logout_closesession()
2164 list_for_each_entry(conn_p, &sess->sess_conn_list, conn_list) { in iscsit_logout_closesession()
2171 spin_unlock_bh(&sess->conn_lock); in iscsit_logout_closesession()
2181 struct iscsi_session *sess = conn->sess; in iscsit_logout_closeconnection() local
2209 l_conn = iscsit_get_conn_from_cid(sess, in iscsit_logout_closeconnection()
2228 struct iscsi_session *sess = conn->sess; in iscsit_logout_removeconnforrecovery() local
2233 if (sess->sess_ops->ErrorRecoveryLevel != 2) { in iscsit_logout_removeconnforrecovery()
2291 conn->sess->init_task_tag = cmd->init_task_tag = hdr->itt; in iscsit_handle_logout_cmd()
2350 if (!conn->sess->sess_ops->ErrorRecoveryLevel) { in iscsit_handle_snack()
2452 if (!conn->sess->sess_ops->ErrorRecoveryLevel) { in iscsit_handle_immediate_data()
2500 list_for_each_entry(conn_p, &conn->sess->sess_conn_list, conn_list) { in iscsit_build_conn_drop_async_message()
2546 hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn); in iscsit_send_conn_drop_async_message()
2547 hdr->max_cmdsn = cpu_to_be32((u32) atomic_read(&conn->sess->max_cmd_sn)); in iscsit_send_conn_drop_async_message()
2550 hdr->param2 = cpu_to_be16(conn->sess->sess_ops->DefaultTime2Wait); in iscsit_send_conn_drop_async_message()
2551 hdr->param3 = cpu_to_be16(conn->sess->sess_ops->DefaultTime2Retain); in iscsit_send_conn_drop_async_message()
2618 hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn); in iscsit_build_datain_pdu()
2619 hdr->max_cmdsn = cpu_to_be32((u32) atomic_read(&conn->sess->max_cmd_sn)); in iscsit_build_datain_pdu()
2657 atomic_long_add(datain.length, &conn->sess->tx_data_octets); in iscsit_send_datain()
2668 iscsit_increment_maxcmdsn(cmd, conn->sess); in iscsit_send_datain()
2752 struct iscsi_session *sess = conn->sess; in iscsit_build_logout_rsp() local
2791 logout_conn = iscsit_get_conn_from_cid_rcfr(sess, in iscsit_build_logout_rsp()
2799 conn->sess, cmd->logout_cid); in iscsit_build_logout_rsp()
2828 iscsit_increment_maxcmdsn(cmd, conn->sess); in iscsit_build_logout_rsp()
2829 hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn); in iscsit_build_logout_rsp()
2830 hdr->max_cmdsn = cpu_to_be32((u32) atomic_read(&conn->sess->max_cmd_sn)); in iscsit_build_logout_rsp()
2890 iscsit_increment_maxcmdsn(cmd, conn->sess); in iscsit_build_nopin_rsp()
2892 hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn); in iscsit_build_nopin_rsp()
2893 hdr->max_cmdsn = cpu_to_be32((u32) atomic_read(&conn->sess->max_cmd_sn)); in iscsit_build_nopin_rsp()
3036 r2t->targ_xfer_tag = session_get_next_ttt(conn->sess); in iscsit_send_r2t()
3039 hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn); in iscsit_send_r2t()
3040 hdr->max_cmdsn = cpu_to_be32((u32) atomic_read(&conn->sess->max_cmd_sn)); in iscsit_send_r2t()
3105 if (conn->sess->sess_ops->DataSequenceInOrder && in iscsit_build_r2ts_for_cmd()
3109 while (cmd->outstanding_r2ts < conn->sess->sess_ops->MaxOutstandingR2T) { in iscsit_build_r2ts_for_cmd()
3110 if (conn->sess->sess_ops->DataSequenceInOrder) { in iscsit_build_r2ts_for_cmd()
3115 conn->sess->sess_ops->MaxBurstLength - in iscsit_build_r2ts_for_cmd()
3122 conn->sess->sess_ops->MaxBurstLength - in iscsit_build_r2ts_for_cmd()
3126 conn->sess->sess_ops->MaxBurstLength; in iscsit_build_r2ts_for_cmd()
3131 xfer_len = conn->sess->sess_ops->MaxBurstLength; in iscsit_build_r2ts_for_cmd()
3174 atomic_long_inc(&conn->sess->rsp_pdus); in iscsit_build_rsp_pdu()
3191 iscsit_increment_maxcmdsn(cmd, conn->sess); in iscsit_build_rsp_pdu()
3192 hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn); in iscsit_build_rsp_pdu()
3193 hdr->max_cmdsn = cpu_to_be32((u32) atomic_read(&conn->sess->max_cmd_sn)); in iscsit_build_rsp_pdu()
3310 iscsit_increment_maxcmdsn(cmd, conn->sess); in iscsit_build_task_mgt_rsp()
3311 hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn); in iscsit_build_task_mgt_rsp()
3312 hdr->max_cmdsn = cpu_to_be32((u32) atomic_read(&conn->sess->max_cmd_sn)); in iscsit_build_task_mgt_rsp()
3439 cmd->conn->sess->sess_ops->InitiatorName))) { in iscsit_build_sendtargets_response()
3549 cmd->targ_xfer_tag = session_get_next_ttt(conn->sess); in iscsit_build_text_rsp()
3559 iscsit_increment_maxcmdsn(cmd, conn->sess); in iscsit_build_text_rsp()
3566 hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn); in iscsit_build_text_rsp()
3567 hdr->max_cmdsn = cpu_to_be32((u32) atomic_read(&conn->sess->max_cmd_sn)); in iscsit_build_text_rsp()
3644 hdr->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn); in iscsit_build_reject()
3645 hdr->max_cmdsn = cpu_to_be32((u32) atomic_read(&conn->sess->max_cmd_sn)); in iscsit_build_reject()
3875 iscsit_fall_back_to_erl0(conn->sess); in iscsit_response_queue()
4061 if (!conn->sess->sess_ops->ErrorRecoveryLevel) { in iscsi_target_rx_opcode()
4161 atomic_long_inc(&conn->sess->conn_digest_errors); in iscsi_target_rx_thread()
4173 if (conn->sess->sess_ops->SessionType && in iscsi_target_rx_thread()
4198 struct iscsi_session *sess = conn->sess; in iscsit_release_commands_from_conn() local
4210 iscsit_increment_maxcmdsn(cmd, sess); in iscsit_release_commands_from_conn()
4236 struct iscsi_session *sess = conn->sess; in iscsit_close_connection() local
4239 " %u\n", conn->cid, sess->sid); in iscsit_close_connection()
4305 iscsit_dec_session_usage_count(sess); in iscsit_close_connection()
4311 atomic_set(&sess->session_reinstatement, 0); in iscsit_close_connection()
4312 atomic_set(&sess->session_fall_back_to_erl0, 1); in iscsit_close_connection()
4315 spin_lock_bh(&sess->conn_lock); in iscsit_close_connection()
4326 spin_unlock_bh(&sess->conn_lock); in iscsit_close_connection()
4384 spin_lock_bh(&sess->conn_lock); in iscsit_close_connection()
4385 atomic_dec(&sess->nconn); in iscsit_close_connection()
4387 " %s\n", atomic_read(&sess->nconn), in iscsit_close_connection()
4388 sess->sess_ops->InitiatorName); in iscsit_close_connection()
4393 if ((sess->sess_ops->ErrorRecoveryLevel != 2) && !conn_logout && in iscsit_close_connection()
4394 !atomic_read(&sess->session_logout)) in iscsit_close_connection()
4395 atomic_set(&sess->session_fall_back_to_erl0, 1); in iscsit_close_connection()
4403 if (atomic_read(&sess->nconn)) { in iscsit_close_connection()
4404 if (!atomic_read(&sess->session_reinstatement) && in iscsit_close_connection()
4405 !atomic_read(&sess->session_fall_back_to_erl0)) { in iscsit_close_connection()
4406 spin_unlock_bh(&sess->conn_lock); in iscsit_close_connection()
4409 if (!atomic_read(&sess->session_stop_active)) { in iscsit_close_connection()
4410 atomic_set(&sess->session_stop_active, 1); in iscsit_close_connection()
4411 spin_unlock_bh(&sess->conn_lock); in iscsit_close_connection()
4412 iscsit_stop_session(sess, 0, 0); in iscsit_close_connection()
4415 spin_unlock_bh(&sess->conn_lock); in iscsit_close_connection()
4432 if (!atomic_read(&sess->session_reinstatement) && in iscsit_close_connection()
4433 atomic_read(&sess->session_fall_back_to_erl0)) { in iscsit_close_connection()
4434 spin_unlock_bh(&sess->conn_lock); in iscsit_close_connection()
4435 target_put_session(sess->se_sess); in iscsit_close_connection()
4438 } else if (atomic_read(&sess->session_logout)) { in iscsit_close_connection()
4440 sess->session_state = TARG_SESS_STATE_FREE; in iscsit_close_connection()
4441 spin_unlock_bh(&sess->conn_lock); in iscsit_close_connection()
4443 if (atomic_read(&sess->sleep_on_sess_wait_comp)) in iscsit_close_connection()
4444 complete(&sess->session_wait_comp); in iscsit_close_connection()
4449 sess->session_state = TARG_SESS_STATE_FAILED; in iscsit_close_connection()
4451 if (!atomic_read(&sess->session_continuation)) { in iscsit_close_connection()
4452 spin_unlock_bh(&sess->conn_lock); in iscsit_close_connection()
4453 iscsit_start_time2retain_handler(sess); in iscsit_close_connection()
4455 spin_unlock_bh(&sess->conn_lock); in iscsit_close_connection()
4457 if (atomic_read(&sess->sleep_on_sess_wait_comp)) in iscsit_close_connection()
4458 complete(&sess->session_wait_comp); in iscsit_close_connection()
4462 spin_unlock_bh(&sess->conn_lock); in iscsit_close_connection()
4467 int iscsit_close_session(struct iscsi_session *sess) in iscsit_close_session() argument
4469 struct iscsi_portal_group *tpg = sess->tpg; in iscsit_close_session()
4472 if (atomic_read(&sess->nconn)) { in iscsit_close_session()
4474 " to %s\n", atomic_read(&sess->nconn), in iscsit_close_session()
4475 sess->sess_ops->InitiatorName); in iscsit_close_session()
4480 atomic_set(&sess->session_logout, 1); in iscsit_close_session()
4481 atomic_set(&sess->session_reinstatement, 1); in iscsit_close_session()
4482 iscsit_stop_time2retain_timer(sess); in iscsit_close_session()
4492 transport_deregister_session_configfs(sess->se_sess); in iscsit_close_session()
4501 if (iscsit_check_session_usage_count(sess) == 1) in iscsit_close_session()
4502 iscsit_stop_session(sess, 1, 1); in iscsit_close_session()
4504 if (iscsit_check_session_usage_count(sess) == 2) { in iscsit_close_session()
4505 atomic_set(&sess->session_logout, 0); in iscsit_close_session()
4506 iscsit_start_time2retain_handler(sess); in iscsit_close_session()
4511 transport_deregister_session(sess->se_sess); in iscsit_close_session()
4513 if (sess->sess_ops->ErrorRecoveryLevel == 2) in iscsit_close_session()
4514 iscsit_free_connection_recovery_entires(sess); in iscsit_close_session()
4516 iscsit_free_all_ooo_cmdsns(sess); in iscsit_close_session()
4520 sess->session_state = TARG_SESS_STATE_FREE; in iscsit_close_session()
4522 sess->sess_ops->InitiatorName); in iscsit_close_session()
4531 idr_remove(&sess_idr, sess->session_index); in iscsit_close_session()
4534 kfree(sess->sess_ops); in iscsit_close_session()
4535 sess->sess_ops = NULL; in iscsit_close_session()
4538 kfree(sess); in iscsit_close_session()
4545 struct iscsi_session *sess = conn->sess; in iscsit_logout_post_handler_closesession() local
4563 iscsit_stop_session(sess, sleep, sleep); in iscsit_logout_post_handler_closesession()
4564 iscsit_dec_session_usage_count(sess); in iscsit_logout_post_handler_closesession()
4565 target_put_session(sess->se_sess); in iscsit_logout_post_handler_closesession()
4588 struct iscsi_session *sess = conn->sess; in iscsit_logout_post_handler_diffcid() local
4591 if (!sess) in iscsit_logout_post_handler_diffcid()
4594 spin_lock_bh(&sess->conn_lock); in iscsit_logout_post_handler_diffcid()
4595 list_for_each_entry(l_conn, &sess->sess_conn_list, conn_list) { in iscsit_logout_post_handler_diffcid()
4602 spin_unlock_bh(&sess->conn_lock); in iscsit_logout_post_handler_diffcid()
4682 void iscsit_fail_session(struct iscsi_session *sess) in iscsit_fail_session() argument
4686 spin_lock_bh(&sess->conn_lock); in iscsit_fail_session()
4687 list_for_each_entry(conn, &sess->sess_conn_list, conn_list) { in iscsit_fail_session()
4691 spin_unlock_bh(&sess->conn_lock); in iscsit_fail_session()
4694 sess->session_state = TARG_SESS_STATE_FAILED; in iscsit_fail_session()
4697 int iscsit_free_session(struct iscsi_session *sess) in iscsit_free_session() argument
4699 u16 conn_count = atomic_read(&sess->nconn); in iscsit_free_session()
4703 spin_lock_bh(&sess->conn_lock); in iscsit_free_session()
4704 atomic_set(&sess->sleep_on_sess_wait_comp, 1); in iscsit_free_session()
4706 list_for_each_entry_safe(conn, conn_tmp, &sess->sess_conn_list, in iscsit_free_session()
4711 if (list_is_last(&conn->conn_list, &sess->sess_conn_list)) { in iscsit_free_session()
4719 spin_unlock_bh(&sess->conn_lock); in iscsit_free_session()
4721 spin_lock_bh(&sess->conn_lock); in iscsit_free_session()
4730 if (atomic_read(&sess->nconn)) { in iscsit_free_session()
4731 spin_unlock_bh(&sess->conn_lock); in iscsit_free_session()
4732 wait_for_completion(&sess->session_wait_comp); in iscsit_free_session()
4734 spin_unlock_bh(&sess->conn_lock); in iscsit_free_session()
4736 target_put_session(sess->se_sess); in iscsit_free_session()
4741 struct iscsi_session *sess, in iscsit_stop_session() argument
4745 u16 conn_count = atomic_read(&sess->nconn); in iscsit_stop_session()
4749 spin_lock_bh(&sess->conn_lock); in iscsit_stop_session()
4751 atomic_set(&sess->sleep_on_sess_wait_comp, 1); in iscsit_stop_session()
4754 list_for_each_entry_safe(conn, conn_tmp, &sess->sess_conn_list, in iscsit_stop_session()
4759 if (list_is_last(&conn->conn_list, &sess->sess_conn_list)) { in iscsit_stop_session()
4767 spin_unlock_bh(&sess->conn_lock); in iscsit_stop_session()
4769 spin_lock_bh(&sess->conn_lock); in iscsit_stop_session()
4777 list_for_each_entry(conn, &sess->sess_conn_list, conn_list) in iscsit_stop_session()
4781 if (session_sleep && atomic_read(&sess->nconn)) { in iscsit_stop_session()
4782 spin_unlock_bh(&sess->conn_lock); in iscsit_stop_session()
4783 wait_for_completion(&sess->session_wait_comp); in iscsit_stop_session()
4785 spin_unlock_bh(&sess->conn_lock); in iscsit_stop_session()
4790 struct iscsi_session *sess; in iscsit_release_sessions_for_tpg() local
4804 sess = (struct iscsi_session *)se_sess->fabric_sess_ptr; in iscsit_release_sessions_for_tpg()
4806 spin_lock(&sess->conn_lock); in iscsit_release_sessions_for_tpg()
4807 if (atomic_read(&sess->session_fall_back_to_erl0) || in iscsit_release_sessions_for_tpg()
4808 atomic_read(&sess->session_logout) || in iscsit_release_sessions_for_tpg()
4809 (sess->time2retain_timer_flags & ISCSI_TF_EXPIRED)) { in iscsit_release_sessions_for_tpg()
4810 spin_unlock(&sess->conn_lock); in iscsit_release_sessions_for_tpg()
4813 atomic_set(&sess->session_reinstatement, 1); in iscsit_release_sessions_for_tpg()
4814 spin_unlock(&sess->conn_lock); in iscsit_release_sessions_for_tpg()
4821 sess = (struct iscsi_session *)se_sess->fabric_sess_ptr; in iscsit_release_sessions_for_tpg()
4823 iscsit_free_session(sess); in iscsit_release_sessions_for_tpg()