Lines Matching refs:tport

44 	struct ft_tport *tport;
47 tport = rcu_dereference_protected(lport->prov[FC_TYPE_FCP],
49 if (tport && tport->tpg)
50 return tport;
56 if (tport) {
57 tport->tpg = tpg;
58 tpg->tport = tport;
59 return tport;
62 tport = kzalloc(sizeof(*tport), GFP_KERNEL);
63 if (!tport)
66 tport->lport = lport;
67 tport->tpg = tpg;
68 tpg->tport = tport;
70 INIT_HLIST_HEAD(&tport->hash[i]);
72 rcu_assign_pointer(lport->prov[FC_TYPE_FCP], tport);
73 return tport;
80 static void ft_tport_delete(struct ft_tport *tport)
85 ft_sess_delete_all(tport);
86 lport = tport->lport;
88 BUG_ON(tport != lport->prov[FC_TYPE_FCP]);
91 tpg = tport->tpg;
93 tpg->tport = NULL;
94 tport->tpg = NULL;
96 kfree_rcu(tport, rcu);
117 struct ft_tport *tport;
120 tport = lport->prov[FC_TYPE_FCP];
121 if (tport)
122 ft_tport_delete(tport);
128 * Create or delete local port and associated tport.
160 struct ft_tport *tport;
166 tport = rcu_dereference(lport->prov[FC_TYPE_FCP]);
167 if (!tport) {
172 head = &tport->hash[ft_sess_hash(port_id)];
193 struct ft_tport *tport = sess->tport;
194 struct hlist_head *head = &tport->hash[ft_sess_hash(sess->port_id)];
196 TFC_SESS_DBG(tport->lport, "port_id %x sess %p\n", sess->port_id, sess);
198 tport->sess_count++;
207 static struct ft_sess *ft_sess_create(struct ft_tport *tport, u32 port_id,
210 struct se_portal_group *se_tpg = &tport->tpg->se_tpg;
217 head = &tport->hash[ft_sess_hash(port_id)];
227 sess->tport = tport;
248 struct ft_tport *tport = sess->tport;
251 BUG_ON(!tport->sess_count);
252 tport->sess_count--;
261 static struct ft_sess *ft_sess_delete(struct ft_tport *tport, u32 port_id)
266 head = &tport->hash[ft_sess_hash(port_id)];
284 * Delete all sessions from tport.
287 static void ft_sess_delete_all(struct ft_tport *tport)
292 for (head = tport->hash;
293 head < &tport->hash[FT_SESS_HASH_SIZE]; head++) {
320 TFC_SESS_DBG(sess->tport->lport, "port_id %x close session\n", port_id);
350 struct ft_tport *tport;
354 tport = ft_tport_get(rdata->local_port);
355 if (!tport)
379 sess = ft_sess_create(tport, rdata->ids.port_id, rdata);
453 struct ft_tport *tport;
456 tport = rcu_dereference_protected(rdata->local_port->prov[FC_TYPE_FCP],
459 if (!tport) {
463 sess = ft_sess_delete(tport, rdata->ids.port_id);