Lines Matching refs:conn

61 	iscsit_add_cmd_to_immediate_queue(cmd, cmd->conn, ISTATE_SEND_R2T);
155 struct iscsit_cmd *iscsit_allocate_cmd(struct iscsit_conn *conn, int state)
158 struct se_session *se_sess = conn->sess->se_sess;
167 size = sizeof(struct iscsit_cmd) + conn->conn_transport->priv_size;
173 cmd->conn = conn;
285 int iscsit_sequence_cmd(struct iscsit_conn *conn, struct iscsit_cmd *cmd,
292 mutex_lock(&conn->sess->cmdsn_mutex);
294 cmdsn_ret = iscsit_check_received_cmdsn(conn->sess, be32_to_cpu(cmdsn));
298 if ((ret >= 0) && !list_empty(&conn->sess->sess_ooo_cmdsn_list))
299 iscsit_execute_ooo_cmdsns(conn->sess);
306 ret = iscsit_handle_ooo_cmdsn(conn->sess, cmd, be32_to_cpu(cmdsn));
318 iscsit_add_cmd_to_immediate_queue(cmd, conn, cmd->i_state);
327 mutex_unlock(&conn->sess->cmdsn_mutex);
338 struct iscsit_conn *conn = cmd->conn;
343 if (conn->sess->sess_ops->InitialR2T) {
352 conn->sess->sess_ops->FirstBurstLength) {
356 conn->sess->sess_ops->FirstBurstLength);
367 conn->sess->sess_ops->FirstBurstLength)) {
372 conn->sess->sess_ops->FirstBurstLength, cmd->se_cmd.data_length);
381 struct iscsit_conn *conn,
386 spin_lock_bh(&conn->cmd_lock);
387 list_for_each_entry(cmd, &conn->conn_cmd_list, i_conn_node) {
389 spin_unlock_bh(&conn->cmd_lock);
393 spin_unlock_bh(&conn->cmd_lock);
396 init_task_tag, conn->cid);
402 struct iscsit_conn *conn,
408 spin_lock_bh(&conn->cmd_lock);
409 list_for_each_entry(cmd, &conn->conn_cmd_list, i_conn_node) {
413 spin_unlock_bh(&conn->cmd_lock);
417 spin_unlock_bh(&conn->cmd_lock);
420 " dumping payload\n", init_task_tag, conn->cid);
422 iscsit_dump_data_payload(conn, length, 1);
429 struct iscsit_conn *conn,
434 spin_lock_bh(&conn->cmd_lock);
435 list_for_each_entry(cmd, &conn->conn_cmd_list, i_conn_node) {
437 spin_unlock_bh(&conn->cmd_lock);
441 spin_unlock_bh(&conn->cmd_lock);
444 targ_xfer_tag, conn->cid);
502 struct iscsit_conn *conn,
517 spin_lock_bh(&conn->immed_queue_lock);
518 list_add_tail(&qr->qr_list, &conn->immed_queue_list);
520 atomic_set(&conn->check_immediate_queue, 1);
521 spin_unlock_bh(&conn->immed_queue_lock);
523 wake_up(&conn->queues_wq);
527 struct iscsi_queue_req *iscsit_get_cmd_from_immediate_queue(struct iscsit_conn *conn)
531 spin_lock_bh(&conn->immed_queue_lock);
532 if (list_empty(&conn->immed_queue_list)) {
533 spin_unlock_bh(&conn->immed_queue_lock);
536 qr = list_first_entry(&conn->immed_queue_list,
542 spin_unlock_bh(&conn->immed_queue_lock);
549 struct iscsit_conn *conn)
553 spin_lock_bh(&conn->immed_queue_lock);
555 spin_unlock_bh(&conn->immed_queue_lock);
559 list_for_each_entry_safe(qr, qr_tmp, &conn->immed_queue_list, qr_list) {
567 spin_unlock_bh(&conn->immed_queue_lock);
578 struct iscsit_conn *conn,
593 spin_lock_bh(&conn->response_queue_lock);
594 list_add_tail(&qr->qr_list, &conn->response_queue_list);
596 spin_unlock_bh(&conn->response_queue_lock);
598 wake_up(&conn->queues_wq);
602 struct iscsi_queue_req *iscsit_get_cmd_from_response_queue(struct iscsit_conn *conn)
606 spin_lock_bh(&conn->response_queue_lock);
607 if (list_empty(&conn->response_queue_list)) {
608 spin_unlock_bh(&conn->response_queue_lock);
612 qr = list_first_entry(&conn->response_queue_list,
618 spin_unlock_bh(&conn->response_queue_lock);
625 struct iscsit_conn *conn)
629 spin_lock_bh(&conn->response_queue_lock);
631 spin_unlock_bh(&conn->response_queue_lock);
635 list_for_each_entry_safe(qr, qr_tmp, &conn->response_queue_list,
644 spin_unlock_bh(&conn->response_queue_lock);
653 bool iscsit_conn_all_queues_empty(struct iscsit_conn *conn)
657 spin_lock_bh(&conn->immed_queue_lock);
658 empty = list_empty(&conn->immed_queue_list);
659 spin_unlock_bh(&conn->immed_queue_lock);
664 spin_lock_bh(&conn->response_queue_lock);
665 empty = list_empty(&conn->response_queue_list);
666 spin_unlock_bh(&conn->response_queue_lock);
671 void iscsit_free_queue_reqs_for_conn(struct iscsit_conn *conn)
675 spin_lock_bh(&conn->immed_queue_lock);
676 list_for_each_entry_safe(qr, qr_tmp, &conn->immed_queue_list, qr_list) {
683 spin_unlock_bh(&conn->immed_queue_lock);
685 spin_lock_bh(&conn->response_queue_lock);
686 list_for_each_entry_safe(qr, qr_tmp, &conn->response_queue_list,
694 spin_unlock_bh(&conn->response_queue_lock);
704 if (cmd->conn)
705 sess = cmd->conn->sess;
725 struct iscsit_conn *conn = cmd->conn;
736 if (conn && check_queues) {
737 iscsit_remove_cmd_from_immediate_queue(cmd, conn);
738 iscsit_remove_cmd_from_response_queue(cmd, conn);
741 if (conn && conn->conn_transport->iscsit_unmap_cmd)
742 conn->conn_transport->iscsit_unmap_cmd(conn, cmd);
803 struct iscsit_conn *conn;
806 list_for_each_entry(conn, &sess->sess_conn_list, conn_list) {
807 if ((conn->cid == cid) &&
808 (conn->conn_state == TARG_CONN_STATE_LOGGED_IN)) {
809 iscsit_inc_conn_usage_count(conn);
811 return conn;
821 struct iscsit_conn *conn;
824 list_for_each_entry(conn, &sess->sess_conn_list, conn_list) {
825 if (conn->cid == cid) {
826 iscsit_inc_conn_usage_count(conn);
827 spin_lock(&conn->state_lock);
828 atomic_set(&conn->connection_wait_rcfr, 1);
829 spin_unlock(&conn->state_lock);
831 return conn;
839 void iscsit_check_conn_usage_count(struct iscsit_conn *conn)
841 spin_lock_bh(&conn->conn_usage_lock);
842 if (conn->conn_usage_count != 0) {
843 conn->conn_waiting_on_uc = 1;
844 spin_unlock_bh(&conn->conn_usage_lock);
846 wait_for_completion(&conn->conn_waiting_on_uc_comp);
849 spin_unlock_bh(&conn->conn_usage_lock);
852 void iscsit_dec_conn_usage_count(struct iscsit_conn *conn)
854 spin_lock_bh(&conn->conn_usage_lock);
855 conn->conn_usage_count--;
857 if (!conn->conn_usage_count && conn->conn_waiting_on_uc)
858 complete(&conn->conn_waiting_on_uc_comp);
860 spin_unlock_bh(&conn->conn_usage_lock);
863 void iscsit_inc_conn_usage_count(struct iscsit_conn *conn)
865 spin_lock_bh(&conn->conn_usage_lock);
866 conn->conn_usage_count++;
867 spin_unlock_bh(&conn->conn_usage_lock);
870 static int iscsit_add_nopin(struct iscsit_conn *conn, int want_response)
875 cmd = iscsit_allocate_cmd(conn, TASK_RUNNING);
884 session_get_next_ttt(conn->sess) : 0xFFFFFFFF;
885 spin_lock_bh(&conn->cmd_lock);
886 list_add_tail(&cmd->i_conn_node, &conn->conn_cmd_list);
887 spin_unlock_bh(&conn->cmd_lock);
890 iscsit_start_nopin_response_timer(conn);
891 iscsit_add_cmd_to_immediate_queue(cmd, conn, state);
898 struct iscsit_conn *conn = from_timer(conn, t, nopin_response_timer);
899 struct iscsit_session *sess = conn->sess;
901 iscsit_inc_conn_usage_count(conn);
903 spin_lock_bh(&conn->nopin_timer_lock);
904 if (conn->nopin_response_timer_flags & ISCSI_TF_STOP) {
905 spin_unlock_bh(&conn->nopin_timer_lock);
906 iscsit_dec_conn_usage_count(conn);
912 conn->cid, sess->sess_ops->InitiatorName, sess->isid,
914 conn->nopin_response_timer_flags &= ~ISCSI_TF_RUNNING;
915 spin_unlock_bh(&conn->nopin_timer_lock);
918 iscsit_cause_connection_reinstatement(conn, 0);
919 iscsit_dec_conn_usage_count(conn);
922 void iscsit_mod_nopin_response_timer(struct iscsit_conn *conn)
924 struct iscsit_session *sess = conn->sess;
927 spin_lock_bh(&conn->nopin_timer_lock);
928 if (!(conn->nopin_response_timer_flags & ISCSI_TF_RUNNING)) {
929 spin_unlock_bh(&conn->nopin_timer_lock);
933 mod_timer(&conn->nopin_response_timer,
935 spin_unlock_bh(&conn->nopin_timer_lock);
938 void iscsit_start_nopin_response_timer(struct iscsit_conn *conn)
940 struct iscsit_session *sess = conn->sess;
943 spin_lock_bh(&conn->nopin_timer_lock);
944 if (conn->nopin_response_timer_flags & ISCSI_TF_RUNNING) {
945 spin_unlock_bh(&conn->nopin_timer_lock);
949 conn->nopin_response_timer_flags &= ~ISCSI_TF_STOP;
950 conn->nopin_response_timer_flags |= ISCSI_TF_RUNNING;
951 mod_timer(&conn->nopin_response_timer,
955 " seconds\n", conn->cid, na->nopin_response_timeout);
956 spin_unlock_bh(&conn->nopin_timer_lock);
959 void iscsit_stop_nopin_response_timer(struct iscsit_conn *conn)
961 spin_lock_bh(&conn->nopin_timer_lock);
962 if (!(conn->nopin_response_timer_flags & ISCSI_TF_RUNNING)) {
963 spin_unlock_bh(&conn->nopin_timer_lock);
966 conn->nopin_response_timer_flags |= ISCSI_TF_STOP;
967 spin_unlock_bh(&conn->nopin_timer_lock);
969 del_timer_sync(&conn->nopin_response_timer);
971 spin_lock_bh(&conn->nopin_timer_lock);
972 conn->nopin_response_timer_flags &= ~ISCSI_TF_RUNNING;
973 spin_unlock_bh(&conn->nopin_timer_lock);
978 struct iscsit_conn *conn = from_timer(conn, t, nopin_timer);
980 iscsit_inc_conn_usage_count(conn);
982 spin_lock_bh(&conn->nopin_timer_lock);
983 if (conn->nopin_timer_flags & ISCSI_TF_STOP) {
984 spin_unlock_bh(&conn->nopin_timer_lock);
985 iscsit_dec_conn_usage_count(conn);
988 conn->nopin_timer_flags &= ~ISCSI_TF_RUNNING;
989 spin_unlock_bh(&conn->nopin_timer_lock);
991 iscsit_add_nopin(conn, 1);
992 iscsit_dec_conn_usage_count(conn);
995 void __iscsit_start_nopin_timer(struct iscsit_conn *conn)
997 struct iscsit_session *sess = conn->sess;
1000 lockdep_assert_held(&conn->nopin_timer_lock);
1008 if (conn->nopin_timer_flags & ISCSI_TF_RUNNING)
1011 conn->nopin_timer_flags &= ~ISCSI_TF_STOP;
1012 conn->nopin_timer_flags |= ISCSI_TF_RUNNING;
1013 mod_timer(&conn->nopin_timer, jiffies + na->nopin_timeout * HZ);
1016 " interval\n", conn->cid, na->nopin_timeout);
1019 void iscsit_start_nopin_timer(struct iscsit_conn *conn)
1021 spin_lock_bh(&conn->nopin_timer_lock);
1022 __iscsit_start_nopin_timer(conn);
1023 spin_unlock_bh(&conn->nopin_timer_lock);
1026 void iscsit_stop_nopin_timer(struct iscsit_conn *conn)
1028 spin_lock_bh(&conn->nopin_timer_lock);
1029 if (!(conn->nopin_timer_flags & ISCSI_TF_RUNNING)) {
1030 spin_unlock_bh(&conn->nopin_timer_lock);
1033 conn->nopin_timer_flags |= ISCSI_TF_STOP;
1034 spin_unlock_bh(&conn->nopin_timer_lock);
1036 del_timer_sync(&conn->nopin_timer);
1038 spin_lock_bh(&conn->nopin_timer_lock);
1039 conn->nopin_timer_flags &= ~ISCSI_TF_RUNNING;
1040 spin_unlock_bh(&conn->nopin_timer_lock);
1045 struct iscsit_conn *conn = from_timer(conn, t, login_timer);
1046 struct iscsi_login *login = conn->login;
1050 spin_lock_bh(&conn->login_timer_lock);
1053 if (conn->login_kworker) {
1054 pr_debug("Sending SIGINT to conn->login_kworker %s/%d\n",
1055 conn->login_kworker->comm, conn->login_kworker->pid);
1056 send_sig(SIGINT, conn->login_kworker, 1);
1058 schedule_delayed_work(&conn->login_work, 0);
1060 spin_unlock_bh(&conn->login_timer_lock);
1063 void iscsit_start_login_timer(struct iscsit_conn *conn, struct task_struct *kthr)
1067 conn->login_kworker = kthr;
1068 mod_timer(&conn->login_timer, jiffies + TA_LOGIN_TIMEOUT * HZ);
1071 int iscsit_set_login_timer_kworker(struct iscsit_conn *conn, struct task_struct *kthr)
1073 struct iscsi_login *login = conn->login;
1076 spin_lock_bh(&conn->login_timer_lock);
1081 conn->login_kworker = kthr;
1083 spin_unlock_bh(&conn->login_timer_lock);
1088 void iscsit_stop_login_timer(struct iscsit_conn *conn)
1091 timer_delete_sync(&conn->login_timer);
1096 struct iscsit_conn *conn,
1114 tx_sent = tx_data(conn, &iov[0], iov_count, tx_size);
1129 struct iscsit_conn *conn)
1141 if (conn->conn_ops->HeaderDigest)
1147 tx_sent = tx_data(conn, &iov, 1, tx_hdr_size);
1161 if (conn->conn_ops->DataDigest) {
1180 tx_sent = conn->sock->ops->sendmsg(conn->sock, &msghdr,
1201 tx_sent = tx_data(conn, iov_p, 1, cmd->padding);
1212 if (conn->conn_ops->DataDigest) {
1215 tx_sent = tx_data(conn, iov_d, 1, ISCSI_CRC_LEN);
1236 int iscsit_tx_login_rsp(struct iscsit_conn *conn, u8 status_class, u8 status_detail)
1239 struct iscsi_login *login = conn->conn_login;
1242 iscsit_collect_login_stats(conn, status_class, status_detail);
1250 hdr->itt = conn->login_itt;
1252 return conn->conn_transport->iscsit_put_login_tx(conn, login, 0);
1257 struct iscsit_conn *conn;
1262 list_for_each_entry(conn, &sess->sess_conn_list, conn_list)
1263 iscsi_dump_conn_ops(conn->conn_ops);
1270 struct iscsit_conn *conn,
1278 if (!conn || !conn->sock || !conn->conn_ops)
1285 rx_loop = sock_recvmsg(conn->sock, &msg, MSG_WAITALL);
1300 struct iscsit_conn *conn,
1308 if (!conn || !conn->sock || !conn->conn_ops)
1321 int tx_loop = sock_sendmsg(conn->sock, &msg);
1336 struct iscsit_conn *conn,
1344 tiqn = iscsit_snmp_get_tiqn(conn);
1375 if (conn->param_list)
1377 conn->param_list);
1382 ls->last_intr_fail_ip_family = conn->login_family;
1384 ls->last_intr_fail_sockaddr = conn->login_sockaddr;
1391 struct iscsi_tiqn *iscsit_snmp_get_tiqn(struct iscsit_conn *conn)
1395 if (!conn)
1398 tpg = conn->tpg;