Lines Matching refs:tiqn
68 struct iscsi_tiqn *tiqn = NULL; in iscsit_get_tiqn_for_login() local
71 list_for_each_entry(tiqn, &g_tiqn_list, tiqn_list) { in iscsit_get_tiqn_for_login()
72 if (!strcmp(tiqn->tiqn, buf)) { in iscsit_get_tiqn_for_login()
74 spin_lock(&tiqn->tiqn_state_lock); in iscsit_get_tiqn_for_login()
75 if (tiqn->tiqn_state == TIQN_STATE_ACTIVE) { in iscsit_get_tiqn_for_login()
76 tiqn->tiqn_access_count++; in iscsit_get_tiqn_for_login()
77 spin_unlock(&tiqn->tiqn_state_lock); in iscsit_get_tiqn_for_login()
79 return tiqn; in iscsit_get_tiqn_for_login()
81 spin_unlock(&tiqn->tiqn_state_lock); in iscsit_get_tiqn_for_login()
89 static int iscsit_set_tiqn_shutdown(struct iscsi_tiqn *tiqn) in iscsit_set_tiqn_shutdown() argument
91 spin_lock(&tiqn->tiqn_state_lock); in iscsit_set_tiqn_shutdown()
92 if (tiqn->tiqn_state == TIQN_STATE_ACTIVE) { in iscsit_set_tiqn_shutdown()
93 tiqn->tiqn_state = TIQN_STATE_SHUTDOWN; in iscsit_set_tiqn_shutdown()
94 spin_unlock(&tiqn->tiqn_state_lock); in iscsit_set_tiqn_shutdown()
97 spin_unlock(&tiqn->tiqn_state_lock); in iscsit_set_tiqn_shutdown()
102 void iscsit_put_tiqn_for_login(struct iscsi_tiqn *tiqn) in iscsit_put_tiqn_for_login() argument
104 spin_lock(&tiqn->tiqn_state_lock); in iscsit_put_tiqn_for_login()
105 tiqn->tiqn_access_count--; in iscsit_put_tiqn_for_login()
106 spin_unlock(&tiqn->tiqn_state_lock); in iscsit_put_tiqn_for_login()
115 struct iscsi_tiqn *tiqn = NULL; in iscsit_add_tiqn() local
124 tiqn = kzalloc(sizeof(*tiqn), GFP_KERNEL); in iscsit_add_tiqn()
125 if (!tiqn) in iscsit_add_tiqn()
128 sprintf(tiqn->tiqn, "%s", buf); in iscsit_add_tiqn()
129 INIT_LIST_HEAD(&tiqn->tiqn_list); in iscsit_add_tiqn()
130 INIT_LIST_HEAD(&tiqn->tiqn_tpg_list); in iscsit_add_tiqn()
131 spin_lock_init(&tiqn->tiqn_state_lock); in iscsit_add_tiqn()
132 spin_lock_init(&tiqn->tiqn_tpg_lock); in iscsit_add_tiqn()
133 spin_lock_init(&tiqn->sess_err_stats.lock); in iscsit_add_tiqn()
134 spin_lock_init(&tiqn->login_stats.lock); in iscsit_add_tiqn()
135 spin_lock_init(&tiqn->logout_stats.lock); in iscsit_add_tiqn()
137 tiqn->tiqn_state = TIQN_STATE_ACTIVE; in iscsit_add_tiqn()
147 kfree(tiqn); in iscsit_add_tiqn()
150 tiqn->tiqn_index = ret; in iscsit_add_tiqn()
151 list_add_tail(&tiqn->tiqn_list, &g_tiqn_list); in iscsit_add_tiqn()
156 pr_debug("CORE[0] - Added iSCSI Target IQN: %s\n", tiqn->tiqn); in iscsit_add_tiqn()
158 return tiqn; in iscsit_add_tiqn()
162 static void iscsit_wait_for_tiqn(struct iscsi_tiqn *tiqn) in iscsit_wait_for_tiqn() argument
167 spin_lock(&tiqn->tiqn_state_lock); in iscsit_wait_for_tiqn()
168 while (tiqn->tiqn_access_count != 0) { in iscsit_wait_for_tiqn()
169 spin_unlock(&tiqn->tiqn_state_lock); in iscsit_wait_for_tiqn()
171 spin_lock(&tiqn->tiqn_state_lock); in iscsit_wait_for_tiqn()
173 spin_unlock(&tiqn->tiqn_state_lock); in iscsit_wait_for_tiqn()
176 void iscsit_del_tiqn(struct iscsi_tiqn *tiqn) in iscsit_del_tiqn() argument
184 if (iscsit_set_tiqn_shutdown(tiqn) < 0) { in iscsit_del_tiqn()
189 iscsit_wait_for_tiqn(tiqn); in iscsit_del_tiqn()
192 list_del(&tiqn->tiqn_list); in iscsit_del_tiqn()
193 idr_remove(&tiqn_idr, tiqn->tiqn_index); in iscsit_del_tiqn()
197 tiqn->tiqn); in iscsit_del_tiqn()
198 kfree(tiqn); in iscsit_del_tiqn()
252 struct iscsi_tiqn *tiqn = tpg->tpg_tiqn; in iscsit_deaccess_np() local
259 if (tiqn) in iscsit_deaccess_np()
260 iscsit_put_tiqn_for_login(tiqn); in iscsit_deaccess_np()
2438 struct iscsi_tiqn *tiqn = iscsit_snmp_get_tiqn(conn); in iscsit_handle_logout_cmd() local
2443 if (tiqn) { in iscsit_handle_logout_cmd()
2444 spin_lock(&tiqn->logout_stats.lock); in iscsit_handle_logout_cmd()
2446 tiqn->logout_stats.normal_logouts++; in iscsit_handle_logout_cmd()
2448 tiqn->logout_stats.abnormal_logouts++; in iscsit_handle_logout_cmd()
2449 spin_unlock(&tiqn->logout_stats.lock); in iscsit_handle_logout_cmd()
3326 struct iscsi_tiqn *tiqn; in iscsit_build_sendtargets_response() local
3360 list_for_each_entry(tiqn, &g_tiqn_list, tiqn_list) { in iscsit_build_sendtargets_response()
3362 strcmp(tiqn->tiqn, text_ptr)) { in iscsit_build_sendtargets_response()
3368 spin_lock(&tiqn->tiqn_tpg_lock); in iscsit_build_sendtargets_response()
3369 list_for_each_entry(tpg, &tiqn->tiqn_tpg_list, tpg_list) { in iscsit_build_sendtargets_response()
3401 tiqn->tiqn); in iscsit_build_sendtargets_response()
3406 spin_unlock(&tiqn->tiqn_tpg_lock); in iscsit_build_sendtargets_response()
3435 spin_unlock(&tiqn->tiqn_tpg_lock); in iscsit_build_sendtargets_response()
3451 spin_unlock(&tiqn->tiqn_tpg_lock); in iscsit_build_sendtargets_response()