Lines Matching refs:login
114 struct sbp_login_descriptor *login, *found = NULL; in sbp_login_find_by_lun() local
117 list_for_each_entry(login, &session->login_list, link) { in sbp_login_find_by_lun()
118 if (login->lun == lun) in sbp_login_find_by_lun()
119 found = login; in sbp_login_find_by_lun()
133 struct sbp_login_descriptor *login; in sbp_login_count_all_by_lun() local
141 list_for_each_entry(login, &sess->login_list, link) { in sbp_login_count_all_by_lun()
142 if (login->lun != lun) in sbp_login_count_all_by_lun()
145 if (!exclusive || login->exclusive) in sbp_login_count_all_by_lun()
160 struct sbp_login_descriptor *login, *found = NULL; in sbp_login_find_by_id() local
167 list_for_each_entry(login, &sess->login_list, link) { in sbp_login_find_by_id()
168 if (login->login_id == login_id) in sbp_login_find_by_id()
169 found = login; in sbp_login_find_by_id()
269 static void sbp_login_release(struct sbp_login_descriptor *login, in sbp_login_release() argument
272 struct sbp_session *sess = login->sess; in sbp_login_release()
276 sbp_target_agent_unregister(login->tgt_agt); in sbp_login_release()
280 list_del(&login->link); in sbp_login_release()
286 kfree(login); in sbp_login_release()
302 struct sbp_login_descriptor *login; in sbp_management_request_login() local
333 login = sbp_login_find_by_lun(sess, se_lun); in sbp_management_request_login()
334 if (login) { in sbp_management_request_login()
430 login = kmalloc(sizeof(*login), GFP_KERNEL); in sbp_management_request_login()
431 if (!login) { in sbp_management_request_login()
442 login->sess = sess; in sbp_management_request_login()
443 login->lun = se_lun; in sbp_management_request_login()
444 login->status_fifo_addr = sbp2_pointer_to_addr(&req->orb.status_fifo); in sbp_management_request_login()
445 login->exclusive = LOGIN_ORB_EXCLUSIVE(be32_to_cpu(req->orb.misc)); in sbp_management_request_login()
446 login->login_id = atomic_inc_return(&login_id); in sbp_management_request_login()
448 login->tgt_agt = sbp_target_agent_register(login); in sbp_management_request_login()
449 if (IS_ERR(login->tgt_agt)) { in sbp_management_request_login()
450 ret = PTR_ERR(login->tgt_agt); in sbp_management_request_login()
454 kfree(login); in sbp_management_request_login()
463 list_add_tail(&login->link, &sess->login_list); in sbp_management_request_login()
471 sbp_login_release(login, true); in sbp_management_request_login()
484 (login->login_id & 0xffff)); in sbp_management_request_login()
486 addr_to_sbp2_pointer(login->tgt_agt->handler.offset, in sbp_management_request_login()
497 sbp_login_release(login, true); in sbp_management_request_login()
532 struct sbp_login_descriptor *login; in sbp_management_request_reconnect() local
546 login = sbp_login_find_by_id(tpg, in sbp_management_request_reconnect()
549 if (!login) { in sbp_management_request_reconnect()
558 if (login->sess->guid != guid) { in sbp_management_request_reconnect()
567 spin_lock_bh(&login->sess->lock); in sbp_management_request_reconnect()
568 if (login->sess->card) in sbp_management_request_reconnect()
569 fw_card_put(login->sess->card); in sbp_management_request_reconnect()
572 login->sess->generation = req->generation; in sbp_management_request_reconnect()
573 login->sess->node_id = req->node_addr; in sbp_management_request_reconnect()
574 login->sess->card = fw_card_get(req->card); in sbp_management_request_reconnect()
575 login->sess->speed = req->speed; in sbp_management_request_reconnect()
576 spin_unlock_bh(&login->sess->lock); in sbp_management_request_reconnect()
590 struct sbp_login_descriptor *login; in sbp_management_request_logout() local
594 login = sbp_login_find_by_id(tpg, id); in sbp_management_request_logout()
595 if (!login) { in sbp_management_request_logout()
605 login->lun->unpacked_lun, login->login_id); in sbp_management_request_logout()
607 if (req->node_addr != login->sess->node_id) { in sbp_management_request_logout()
616 sbp_login_release(login, true); in sbp_management_request_logout()
654 struct sbp_login_descriptor *login, *temp; in session_reconnect_expired() local
660 list_for_each_entry_safe(login, temp, &sess->login_list, link) { in session_reconnect_expired()
661 login->sess = NULL; in session_reconnect_expired()
662 list_move_tail(&login->link, &login_list); in session_reconnect_expired()
666 list_for_each_entry_safe(login, temp, &login_list, link) { in session_reconnect_expired()
667 list_del(&login->link); in session_reconnect_expired()
668 sbp_login_release(login, false); in session_reconnect_expired()
837 struct sbp_session *sess = agent->login->sess; in tgt_agent_rw()
951 struct sbp_session *sess = agent->login->sess; in tgt_agent_fetch_work()
966 req->login = agent->login; in tgt_agent_fetch_work()
1031 struct sbp_login_descriptor *login) in sbp_target_agent_register() argument
1046 agent->login = login; in sbp_target_agent_register()
1107 struct sbp_login_descriptor *login = req->login; in sbp_run_request_transaction() local
1108 struct sbp_session *sess = login->sess; in sbp_run_request_transaction()
1212 struct sbp_login_descriptor *login = req->login; in sbp_handle_command() local
1213 struct sbp_session *sess = login->sess; in sbp_handle_command()
1231 unpacked_lun = req->login->lun->unpacked_lun; in sbp_handle_command()
1260 struct sbp_session *sess = req->login->sess; in sbp_rw_data()
1351 struct sbp_login_descriptor *login = req->login; in sbp_send_status() local
1356 login->status_fifo_addr, &req->status, length); in sbp_send_status()