Lines Matching refs:tport

57 	struct ft_tport *tport;  in ft_tport_get()  local
60 tport = rcu_dereference_protected(lport->prov[FC_TYPE_FCP], in ft_tport_get()
62 if (tport && tport->tpg) in ft_tport_get()
63 return tport; in ft_tport_get()
69 if (tport) { in ft_tport_get()
70 tport->tpg = tpg; in ft_tport_get()
71 tpg->tport = tport; in ft_tport_get()
72 return tport; in ft_tport_get()
75 tport = kzalloc(sizeof(*tport), GFP_KERNEL); in ft_tport_get()
76 if (!tport) in ft_tport_get()
79 tport->lport = lport; in ft_tport_get()
80 tport->tpg = tpg; in ft_tport_get()
81 tpg->tport = tport; in ft_tport_get()
83 INIT_HLIST_HEAD(&tport->hash[i]); in ft_tport_get()
85 rcu_assign_pointer(lport->prov[FC_TYPE_FCP], tport); in ft_tport_get()
86 return tport; in ft_tport_get()
93 static void ft_tport_delete(struct ft_tport *tport) in ft_tport_delete() argument
98 ft_sess_delete_all(tport); in ft_tport_delete()
99 lport = tport->lport; in ft_tport_delete()
100 BUG_ON(tport != lport->prov[FC_TYPE_FCP]); in ft_tport_delete()
103 tpg = tport->tpg; in ft_tport_delete()
105 tpg->tport = NULL; in ft_tport_delete()
106 tport->tpg = NULL; in ft_tport_delete()
108 kfree_rcu(tport, rcu); in ft_tport_delete()
128 struct ft_tport *tport; in ft_lport_del() local
131 tport = lport->prov[FC_TYPE_FCP]; in ft_lport_del()
132 if (tport) in ft_lport_del()
133 ft_tport_delete(tport); in ft_lport_del()
171 struct ft_tport *tport; in ft_sess_get() local
176 tport = rcu_dereference(lport->prov[FC_TYPE_FCP]); in ft_sess_get()
177 if (!tport) in ft_sess_get()
180 head = &tport->hash[ft_sess_hash(port_id)]; in ft_sess_get()
199 static struct ft_sess *ft_sess_create(struct ft_tport *tport, u32 port_id, in ft_sess_create() argument
205 head = &tport->hash[ft_sess_hash(port_id)]; in ft_sess_create()
222 sess->tport = tport; in ft_sess_create()
226 tport->sess_count++; in ft_sess_create()
230 transport_register_session(&tport->tpg->se_tpg, &acl->se_node_acl, in ft_sess_create()
241 struct ft_tport *tport = sess->tport; in ft_sess_unhash() local
244 BUG_ON(!tport->sess_count); in ft_sess_unhash()
245 tport->sess_count--; in ft_sess_unhash()
254 static struct ft_sess *ft_sess_delete(struct ft_tport *tport, u32 port_id) in ft_sess_delete() argument
259 head = &tport->hash[ft_sess_hash(port_id)]; in ft_sess_delete()
273 static void ft_sess_delete_all(struct ft_tport *tport) in ft_sess_delete_all() argument
278 for (head = tport->hash; in ft_sess_delete_all()
279 head < &tport->hash[FT_SESS_HASH_SIZE]; head++) { in ft_sess_delete_all()
350 struct ft_tport *tport; in ft_prli_locked() local
355 tport = ft_tport_get(rdata->local_port); in ft_prli_locked()
356 if (!tport) in ft_prli_locked()
359 acl = ft_acl_get(tport->tpg, rdata); in ft_prli_locked()
384 sess = ft_sess_create(tport, rdata->ids.port_id, acl); in ft_prli_locked()
453 struct ft_tport *tport; in ft_prlo() local
456 tport = rcu_dereference_protected(rdata->local_port->prov[FC_TYPE_FCP], in ft_prlo()
459 if (!tport) { in ft_prlo()
463 sess = ft_sess_delete(tport, rdata->ids.port_id); in ft_prlo()