Lines Matching refs:login
169 struct iscsi_login *login) in iscsi_target_check_login_request() argument
175 login_req = (struct iscsi_login_req *) login->req; in iscsi_target_check_login_request()
201 if (req_csg != login->current_stage) { in iscsi_target_check_login_request()
203 " from %d to %d, login failed.\n", login->current_stage, in iscsi_target_check_login_request()
221 if ((login_req->max_version != login->version_max) || in iscsi_target_check_login_request()
222 (login_req->min_version != login->version_min)) { in iscsi_target_check_login_request()
231 if (memcmp(login_req->isid, login->isid, 6) != 0) { in iscsi_target_check_login_request()
239 if (login_req->itt != login->init_task_tag) { in iscsi_target_check_login_request()
260 struct iscsi_login *login) in iscsi_target_check_first_request() argument
265 login->first_request = 0; in iscsi_target_check_first_request()
282 if (!login->leading_connection) in iscsi_target_check_first_request()
297 if (!login->leading_connection) { in iscsi_target_check_first_request()
326 static int iscsi_target_do_tx_login_io(struct iscsi_conn *conn, struct iscsi_login *login) in iscsi_target_do_tx_login_io() argument
331 login_rsp = (struct iscsi_login_rsp *) login->rsp; in iscsi_target_do_tx_login_io()
334 hton24(login_rsp->dlength, login->rsp_length); in iscsi_target_do_tx_login_io()
335 memcpy(login_rsp->isid, login->isid, 6); in iscsi_target_do_tx_login_io()
336 login_rsp->tsih = cpu_to_be16(login->tsih); in iscsi_target_do_tx_login_io()
337 login_rsp->itt = login->init_task_tag; in iscsi_target_do_tx_login_io()
346 ntohl(login_rsp->statsn), login->rsp_length); in iscsi_target_do_tx_login_io()
348 padding = ((-login->rsp_length) & 3); in iscsi_target_do_tx_login_io()
355 if (login->login_complete) { in iscsi_target_do_tx_login_io()
364 if (conn->conn_transport->iscsit_put_login_tx(conn, login, in iscsi_target_do_tx_login_io()
365 login->rsp_length + padding) < 0) in iscsi_target_do_tx_login_io()
368 login->rsp_length = 0; in iscsi_target_do_tx_login_io()
373 if (login->login_complete) { in iscsi_target_do_tx_login_io()
536 static void iscsi_target_login_drop(struct iscsi_conn *conn, struct iscsi_login *login) in iscsi_target_login_drop() argument
538 bool zero_tsih = login->zero_tsih; in iscsi_target_login_drop()
568 struct iscsi_login *login = conn->login; in iscsi_target_do_login_rx() local
569 struct iscsi_np *np = login->np; in iscsi_target_do_login_rx()
573 int rc, zero_tsih = login->zero_tsih; in iscsi_target_do_login_rx()
615 rc = conn->conn_transport->iscsit_get_login_rx(conn, login); in iscsi_target_do_login_rx()
649 rc = iscsi_target_do_login(conn, login); in iscsi_target_do_login_rx()
667 iscsi_target_login_drop(conn, login); in iscsi_target_do_login_rx()
753 struct iscsi_login *login) in iscsi_target_check_for_existing_instances() argument
755 if (login->checked_for_existing) in iscsi_target_check_for_existing_instances()
758 login->checked_for_existing = 1; in iscsi_target_check_for_existing_instances()
760 if (!login->tsih) in iscsi_target_check_for_existing_instances()
763 return iscsi_login_post_auth_non_zero_tsih(conn, login->cid, in iscsi_target_check_for_existing_instances()
764 login->initial_exp_statsn); in iscsi_target_check_for_existing_instances()
769 struct iscsi_login *login) in iscsi_target_do_authentication() argument
777 login_req = (struct iscsi_login_req *) login->req; in iscsi_target_do_authentication()
778 login_rsp = (struct iscsi_login_rsp *) login->rsp; in iscsi_target_do_authentication()
787 login->req_buf, in iscsi_target_do_authentication()
788 login->rsp_buf, in iscsi_target_do_authentication()
790 &login->rsp_length, in iscsi_target_do_authentication()
800 login->auth_complete = 1; in iscsi_target_do_authentication()
805 login->current_stage = 1; in iscsi_target_do_authentication()
808 conn, login); in iscsi_target_do_authentication()
828 struct iscsi_login *login) in iscsi_target_handle_csg_zero() argument
836 login_req = (struct iscsi_login_req *) login->req; in iscsi_target_handle_csg_zero()
837 login_rsp = (struct iscsi_login_rsp *) login->rsp; in iscsi_target_handle_csg_zero()
847 login->req_buf, in iscsi_target_handle_csg_zero()
854 if (login->auth_complete) { in iscsi_target_handle_csg_zero()
872 if (login->first_request) in iscsi_target_handle_csg_zero()
873 if (iscsi_target_check_first_request(conn, login) < 0) in iscsi_target_handle_csg_zero()
879 login->rsp_buf, in iscsi_target_handle_csg_zero()
880 &login->rsp_length, in iscsi_target_handle_csg_zero()
898 !login->auth_complete) in iscsi_target_handle_csg_zero()
901 if (strncmp(param->value, NONE, 4) && !login->auth_complete) in iscsi_target_handle_csg_zero()
908 login->current_stage = 1; in iscsi_target_handle_csg_zero()
914 return iscsi_target_do_authentication(conn, login); in iscsi_target_handle_csg_zero()
917 static int iscsi_target_handle_csg_one(struct iscsi_conn *conn, struct iscsi_login *login) in iscsi_target_handle_csg_one() argument
924 login_req = (struct iscsi_login_req *) login->req; in iscsi_target_handle_csg_one()
925 login_rsp = (struct iscsi_login_rsp *) login->rsp; in iscsi_target_handle_csg_one()
931 login->req_buf, in iscsi_target_handle_csg_one()
940 if (login->first_request) in iscsi_target_handle_csg_one()
941 if (iscsi_target_check_first_request(conn, login) < 0) in iscsi_target_handle_csg_one()
944 if (iscsi_target_check_for_existing_instances(conn, login) < 0) in iscsi_target_handle_csg_one()
950 login->rsp_buf, in iscsi_target_handle_csg_one()
951 &login->rsp_length, in iscsi_target_handle_csg_one()
960 if (!login->auth_complete && in iscsi_target_handle_csg_one()
979 static int iscsi_target_do_login(struct iscsi_conn *conn, struct iscsi_login *login) in iscsi_target_do_login() argument
985 login_req = (struct iscsi_login_req *) login->req; in iscsi_target_do_login()
986 login_rsp = (struct iscsi_login_rsp *) login->rsp; in iscsi_target_do_login()
999 if (iscsi_target_handle_csg_zero(conn, login) < 0) in iscsi_target_do_login()
1004 if (iscsi_target_handle_csg_one(conn, login) < 0) in iscsi_target_do_login()
1016 login->tsih = conn->sess->tsih; in iscsi_target_do_login()
1017 login->login_complete = 1; in iscsi_target_do_login()
1020 login) < 0) in iscsi_target_do_login()
1032 if (iscsi_target_do_tx_login_io(conn, login) < 0) in iscsi_target_do_login()
1066 struct iscsi_login *login) in iscsi_target_locate_portal() argument
1081 login->np = np; in iscsi_target_locate_portal()
1083 login_req = (struct iscsi_login_req *) login->req; in iscsi_target_locate_portal()
1092 memcpy(tmpbuf, login->req_buf, payload_length); in iscsi_target_locate_portal()
1135 if (!login->leading_connection) in iscsi_target_locate_portal()
1152 if (!login->leading_connection) in iscsi_target_locate_portal()
1248 if (!login->leading_connection) { in iscsi_target_locate_portal()
1299 struct iscsi_login *login, in iscsi_target_start_negotiation() argument
1321 ret = iscsi_target_do_login(conn, login); in iscsi_target_start_negotiation()
1338 struct iscsi_login *login = conn->conn_login; in iscsi_target_nego_release() local
1340 if (!login) in iscsi_target_nego_release()
1343 kfree(login->req_buf); in iscsi_target_nego_release()
1344 kfree(login->rsp_buf); in iscsi_target_nego_release()
1345 kfree(login); in iscsi_target_nego_release()