Lines Matching refs:login
97 struct sbp_login_descriptor *login, *found = NULL; in sbp_login_find_by_lun() local
100 list_for_each_entry(login, &session->login_list, link) { in sbp_login_find_by_lun()
101 if (login->login_lun == unpacked_lun) in sbp_login_find_by_lun()
102 found = login; in sbp_login_find_by_lun()
116 struct sbp_login_descriptor *login; in sbp_login_count_all_by_lun() local
124 list_for_each_entry(login, &sess->login_list, link) { in sbp_login_count_all_by_lun()
125 if (login->login_lun != unpacked_lun) in sbp_login_count_all_by_lun()
128 if (!exclusive || login->exclusive) in sbp_login_count_all_by_lun()
143 struct sbp_login_descriptor *login, *found = NULL; in sbp_login_find_by_id() local
150 list_for_each_entry(login, &sess->login_list, link) { in sbp_login_find_by_id()
151 if (login->login_id == login_id) in sbp_login_find_by_id()
152 found = login; in sbp_login_find_by_id()
235 static void sbp_login_release(struct sbp_login_descriptor *login, in sbp_login_release() argument
238 struct sbp_session *sess = login->sess; in sbp_login_release()
242 sbp_target_agent_unregister(login->tgt_agt); in sbp_login_release()
246 list_del(&login->link); in sbp_login_release()
252 kfree(login); in sbp_login_release()
265 struct sbp_login_descriptor *login; in sbp_management_request_login() local
298 login = sbp_login_find_by_lun(sess, unpacked_lun); in sbp_management_request_login()
299 if (login) { in sbp_management_request_login()
395 login = kmalloc(sizeof(*login), GFP_KERNEL); in sbp_management_request_login()
396 if (!login) { in sbp_management_request_login()
407 login->sess = sess; in sbp_management_request_login()
408 login->login_lun = unpacked_lun; in sbp_management_request_login()
409 login->status_fifo_addr = sbp2_pointer_to_addr(&req->orb.status_fifo); in sbp_management_request_login()
410 login->exclusive = LOGIN_ORB_EXCLUSIVE(be32_to_cpu(req->orb.misc)); in sbp_management_request_login()
411 login->login_id = atomic_inc_return(&login_id); in sbp_management_request_login()
413 login->tgt_agt = sbp_target_agent_register(login); in sbp_management_request_login()
414 if (IS_ERR(login->tgt_agt)) { in sbp_management_request_login()
415 ret = PTR_ERR(login->tgt_agt); in sbp_management_request_login()
419 kfree(login); in sbp_management_request_login()
428 list_add_tail(&login->link, &sess->login_list); in sbp_management_request_login()
436 sbp_login_release(login, true); in sbp_management_request_login()
449 (login->login_id & 0xffff)); in sbp_management_request_login()
451 addr_to_sbp2_pointer(login->tgt_agt->handler.offset, in sbp_management_request_login()
462 sbp_login_release(login, true); in sbp_management_request_login()
497 struct sbp_login_descriptor *login; in sbp_management_request_reconnect() local
511 login = sbp_login_find_by_id(tpg, in sbp_management_request_reconnect()
514 if (!login) { in sbp_management_request_reconnect()
523 if (login->sess->guid != guid) { in sbp_management_request_reconnect()
532 spin_lock_bh(&login->sess->lock); in sbp_management_request_reconnect()
533 if (login->sess->card) in sbp_management_request_reconnect()
534 fw_card_put(login->sess->card); in sbp_management_request_reconnect()
537 login->sess->generation = req->generation; in sbp_management_request_reconnect()
538 login->sess->node_id = req->node_addr; in sbp_management_request_reconnect()
539 login->sess->card = fw_card_get(req->card); in sbp_management_request_reconnect()
540 login->sess->speed = req->speed; in sbp_management_request_reconnect()
541 spin_unlock_bh(&login->sess->lock); in sbp_management_request_reconnect()
555 struct sbp_login_descriptor *login; in sbp_management_request_logout() local
559 login = sbp_login_find_by_id(tpg, id); in sbp_management_request_logout()
560 if (!login) { in sbp_management_request_logout()
570 login->login_lun, login->login_id); in sbp_management_request_logout()
572 if (req->node_addr != login->sess->node_id) { in sbp_management_request_logout()
581 sbp_login_release(login, true); in sbp_management_request_logout()
619 struct sbp_login_descriptor *login, *temp; in session_reconnect_expired() local
625 list_for_each_entry_safe(login, temp, &sess->login_list, link) { in session_reconnect_expired()
626 login->sess = NULL; in session_reconnect_expired()
627 list_move_tail(&login->link, &login_list); in session_reconnect_expired()
631 list_for_each_entry_safe(login, temp, &login_list, link) { in session_reconnect_expired()
632 list_del(&login->link); in session_reconnect_expired()
633 sbp_login_release(login, false); in session_reconnect_expired()
802 struct sbp_session *sess = agent->login->sess; in tgt_agent_rw()
934 struct sbp_session *sess = agent->login->sess; in tgt_agent_fetch_work()
949 req->login = agent->login; in tgt_agent_fetch_work()
1013 struct sbp_login_descriptor *login) in sbp_target_agent_register() argument
1028 agent->login = login; in sbp_target_agent_register()
1089 struct sbp_login_descriptor *login = req->login; in sbp_run_request_transaction() local
1090 struct sbp_session *sess = login->sess; in sbp_run_request_transaction()
1194 struct sbp_login_descriptor *login = req->login; in sbp_handle_command() local
1195 struct sbp_session *sess = login->sess; in sbp_handle_command()
1213 unpacked_lun = req->login->login_lun; in sbp_handle_command()
1243 struct sbp_session *sess = req->login->sess; in sbp_rw_data()
1334 struct sbp_login_descriptor *login = req->login; in sbp_send_status() local
1339 login->status_fifo_addr, &req->status, length); in sbp_send_status()