Lines Matching defs:conn

103 	struct iscsi_conn *conn,
110 struct iscsi_session *sess = conn->sess;
120 se_nacl = conn->sess->se_sess->se_node_acl;
153 strcpy(conn->sess->auth_type, "CHAP");
155 strcpy(conn->sess->auth_type, NONE);
161 return srp_main_loop(conn, auth, in_buf, out_buf,
165 return chap_main_loop(conn, auth, in_buf, out_buf,
177 static void iscsi_remove_failed_auth_entry(struct iscsi_conn *conn)
179 kfree(conn->auth_protocol);
183 struct iscsi_conn *conn,
199 iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
208 iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
220 iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
231 iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
241 iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
249 iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
257 iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
273 struct iscsi_conn *conn,
281 list_for_each_entry(param, &conn->param_list->param_list, p_list) {
286 iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
301 iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
312 se_nacl = conn->sess->se_sess->se_node_acl;
316 iscsit_tx_login_rsp(conn,
328 iscsit_tx_login_rsp(conn,
340 static int iscsi_target_do_tx_login_io(struct iscsi_conn *conn, struct iscsi_login *login)
343 struct iscsi_session *sess = conn->sess;
353 login_rsp->statsn = cpu_to_be32(conn->stat_sn++);
354 login_rsp->exp_cmdsn = cpu_to_be32(conn->sess->exp_cmd_sn);
355 login_rsp->max_cmdsn = cpu_to_be32(conn->sess->max_cmd_sn);
365 if (conn->conn_transport->iscsit_put_login_tx(conn, login,
380 struct iscsi_conn *conn = sk->sk_user_data;
383 pr_debug("Entering iscsi_target_sk_data_ready: conn: %p\n", conn);
390 if (!test_bit(LOGIN_FLAGS_READY, &conn->login_flags)) {
392 pr_debug("Got LOGIN_FLAGS_READY=0, conn: %p >>>>\n", conn);
395 if (test_bit(LOGIN_FLAGS_CLOSED, &conn->login_flags)) {
397 pr_debug("Got LOGIN_FLAGS_CLOSED=1, conn: %p >>>>\n", conn);
400 if (test_and_set_bit(LOGIN_FLAGS_READ_ACTIVE, &conn->login_flags)) {
402 pr_debug("Got LOGIN_FLAGS_READ_ACTIVE=1, conn: %p >>>>\n", conn);
406 rc = schedule_delayed_work(&conn->login_work, 0);
416 static void iscsi_target_set_sock_callbacks(struct iscsi_conn *conn)
420 if (!conn->sock)
423 sk = conn->sock->sk;
424 pr_debug("Entering iscsi_target_set_sock_callbacks: conn: %p\n", conn);
427 sk->sk_user_data = conn;
428 conn->orig_data_ready = sk->sk_data_ready;
429 conn->orig_state_change = sk->sk_state_change;
438 static void iscsi_target_restore_sock_callbacks(struct iscsi_conn *conn)
442 if (!conn->sock)
445 sk = conn->sock->sk;
446 pr_debug("Entering iscsi_target_restore_sock_callbacks: conn: %p\n", conn);
454 sk->sk_data_ready = conn->orig_data_ready;
455 sk->sk_state_change = conn->orig_state_change;
474 static void iscsi_target_login_drop(struct iscsi_conn *conn, struct iscsi_login *login)
479 iscsi_remove_failed_auth_entry(conn);
480 iscsi_target_nego_release(conn);
481 iscsi_target_login_sess_out(conn, np, zero_tsih, true);
486 struct iscsi_conn *conn = (struct iscsi_conn *)data;
490 if (conn->login_kworker) {
491 pr_debug("Sending SIGINT to conn->login_kworker %s/%d\n",
492 conn->login_kworker->comm, conn->login_kworker->pid);
493 send_sig(SIGINT, conn->login_kworker, 1);
499 struct iscsi_conn *conn = container_of(work,
501 struct iscsi_login *login = conn->login;
503 struct iscsi_portal_group *tpg = conn->tpg;
504 struct iscsi_tpg_np *tpg_np = conn->tpg_np;
509 pr_debug("entering iscsi_target_do_login_rx, conn: %p, %s:%d\n",
510 conn, current->comm, current->pid);
518 iscsi_target_restore_sock_callbacks(conn);
519 iscsi_target_login_drop(conn, login);
524 if (conn->sock) {
525 struct sock *sk = conn->sock->sk;
533 iscsi_target_restore_sock_callbacks(conn);
534 iscsi_target_login_drop(conn, login);
540 conn->login_kworker = current;
545 login_timer.data = (unsigned long)conn;
550 rc = conn->conn_transport->iscsit_get_login_rx(conn, login);
553 conn->login_kworker = NULL;
556 iscsi_target_restore_sock_callbacks(conn);
557 iscsi_target_login_drop(conn, login);
563 conn, current->comm, current->pid);
565 rc = iscsi_target_do_login(conn, login);
567 iscsi_target_restore_sock_callbacks(conn);
568 iscsi_target_login_drop(conn, login);
571 if (conn->sock) {
572 struct sock *sk = conn->sock->sk;
575 clear_bit(LOGIN_FLAGS_READ_ACTIVE, &conn->login_flags);
579 iscsi_target_nego_release(conn);
580 iscsi_post_login_handler(np, conn, zero_tsih);
587 struct iscsi_conn *conn = container_of(work,
589 struct sock *sk = conn->sock->sk;
590 struct iscsi_login *login = conn->login;
592 struct iscsi_portal_group *tpg = conn->tpg;
593 struct iscsi_tpg_np *tpg_np = conn->tpg_np;
597 cancel_delayed_work_sync(&conn->login_work);
598 conn->orig_state_change(sk);
600 iscsi_target_restore_sock_callbacks(conn);
601 iscsi_target_login_drop(conn, login);
609 struct iscsi_conn *conn;
616 conn = sk->sk_user_data;
617 if (!conn) {
621 orig_state_change = conn->orig_state_change;
623 if (!test_bit(LOGIN_FLAGS_READY, &conn->login_flags)) {
624 pr_debug("Got LOGIN_FLAGS_READY=0 sk_state_change conn: %p\n",
625 conn);
630 if (test_bit(LOGIN_FLAGS_READ_ACTIVE, &conn->login_flags)) {
632 " conn: %p\n", conn);
637 if (test_and_set_bit(LOGIN_FLAGS_CLOSED, &conn->login_flags)) {
638 pr_debug("Got LOGIN_FLAGS_CLOSED=1 sk_state_change conn: %p\n",
639 conn);
652 schedule_delayed_work(&conn->login_cleanup_work, 0);
664 struct iscsi_conn *conn,
673 return iscsi_check_for_session_reinstatement(conn);
675 return iscsi_login_post_auth_non_zero_tsih(conn, login->cid,
680 struct iscsi_conn *conn,
693 param = iscsi_find_param_from_key(AUTHMETHOD, conn->param_list);
698 conn,
720 conn, login);
724 iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
730 iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR,
739 struct iscsi_conn *conn,
752 param = iscsi_find_param_from_key(AUTHMETHOD, conn->param_list);
761 conn);
770 iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
779 iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
785 if (iscsi_target_check_first_request(conn, login) < 0)
793 conn->param_list);
797 if (!iscsi_check_negotiated_keys(conn->param_list)) {
798 if (conn->tpg->tpg_attrib.authentication &&
803 iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
808 if (conn->tpg->tpg_attrib.authentication &&
825 return iscsi_target_do_authentication(conn, login);
828 static int iscsi_target_handle_csg_one(struct iscsi_conn *conn, struct iscsi_login *login)
844 conn);
846 iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
852 if (iscsi_target_check_first_request(conn, login) < 0)
855 if (iscsi_target_check_for_existing_instances(conn, login) < 0)
863 conn->param_list);
865 iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
871 conn->tpg->tpg_attrib.authentication) {
875 iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
880 if (!iscsi_check_negotiated_keys(conn->param_list))
889 static int iscsi_target_do_login(struct iscsi_conn *conn, struct iscsi_login *login)
901 iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR,
909 if (iscsi_target_handle_csg_zero(conn, login) < 0)
914 if (iscsi_target_handle_csg_one(conn, login) < 0)
917 login->tsih = conn->sess->tsih;
919 iscsi_target_restore_sock_callbacks(conn);
920 if (iscsi_target_do_tx_login_io(conn,
933 if (iscsi_target_do_tx_login_io(conn, login) < 0)
943 if (conn->sock) {
944 struct sock *sk = conn->sock->sk;
953 " conn: %p\n", conn);
981 struct iscsi_conn *conn,
986 struct iscsi_session *sess = conn->sess;
994 INIT_DELAYED_WORK(&conn->login_work, iscsi_target_do_login_rx);
995 INIT_DELAYED_WORK(&conn->login_cleanup_work, iscsi_target_do_cleanup);
996 iscsi_target_set_sock_callbacks(conn);
1039 iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
1057 iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
1068 conn->tpg = iscsit_global->discovery_tpg;
1076 if (iscsi_login_setup_crypto(conn) < 0) {
1085 if (iscsit_access_np(np, conn->tpg) < 0) {
1086 iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR,
1100 iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
1113 iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR,
1123 conn->tpg = iscsit_get_tpg_from_np(tiqn, np, &tpg_np);
1124 if (!conn->tpg) {
1128 iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR,
1133 conn->tpg_np = tpg_np;
1134 pr_debug("Located Portal Group Object: %hu\n", conn->tpg->tpgt);
1138 if (iscsi_login_setup_crypto(conn) < 0) {
1142 conn->tpg = NULL;
1150 if (iscsit_access_np(np, conn->tpg) < 0) {
1153 iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR,
1155 conn->tpg = NULL;
1161 * conn->sess->node_acl will be set when the referenced
1179 &conn->tpg->tpg_se_tpg, i_buf);
1183 i_buf, conn->tpg->tpgt);
1184 iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_INITIATOR_ERR,
1202 tag_size = sizeof(struct iscsi_cmd) + conn->conn_transport->priv_size;
1206 iscsit_tx_login_rsp(conn, ISCSI_STATUS_CLS_TARGET_ERR,
1217 struct iscsi_conn *conn)
1221 ret = iscsi_target_do_login(conn, login);
1223 if (conn->sock) {
1224 struct sock *sk = conn->sock->sk;
1227 set_bit(LOGIN_FLAGS_READY, &conn->login_flags);
1231 cancel_delayed_work_sync(&conn->login_work);
1232 cancel_delayed_work_sync(&conn->login_cleanup_work);
1233 iscsi_target_restore_sock_callbacks(conn);
1234 iscsi_remove_failed_auth_entry(conn);
1237 iscsi_target_nego_release(conn);
1242 void iscsi_target_nego_release(struct iscsi_conn *conn)
1244 struct iscsi_login *login = conn->conn_login;
1253 conn->conn_login = NULL;