Lines Matching refs:rdata
53 struct fc_rport_priv *rdata; in fc_disc_stop_rports() local
57 list_for_each_entry(rdata, &disc->rports, peers) { in fc_disc_stop_rports()
58 if (kref_get_unless_zero(&rdata->kref)) { in fc_disc_stop_rports()
59 fc_rport_logoff(rdata); in fc_disc_stop_rports()
60 kref_put(&rdata->kref, fc_rport_destroy); in fc_disc_stop_rports()
255 struct fc_rport_priv *rdata; in fc_disc_done() local
275 list_for_each_entry(rdata, &disc->rports, peers) { in fc_disc_done()
276 if (!kref_get_unless_zero(&rdata->kref)) in fc_disc_done()
278 if (rdata->disc_id) { in fc_disc_done()
279 if (rdata->disc_id == disc->disc_id) in fc_disc_done()
280 fc_rport_login(rdata); in fc_disc_done()
282 fc_rport_logoff(rdata); in fc_disc_done()
284 kref_put(&rdata->kref, fc_rport_destroy); in fc_disc_done()
385 struct fc_rport_priv *rdata; in fc_disc_gpn_ft_parse() local
433 rdata = fc_rport_create(lport, ids.port_id); in fc_disc_gpn_ft_parse()
434 if (rdata) { in fc_disc_gpn_ft_parse()
435 rdata->ids.port_name = ids.port_name; in fc_disc_gpn_ft_parse()
436 rdata->disc_id = disc->disc_id; in fc_disc_gpn_ft_parse()
568 struct fc_rport_priv *rdata = rdata_arg; in fc_disc_gpn_id_resp() local
576 lport = rdata->local_port; in fc_disc_gpn_id_resp()
597 mutex_lock(&rdata->rp_mutex); in fc_disc_gpn_id_resp()
598 if (rdata->ids.port_name == -1) in fc_disc_gpn_id_resp()
599 rdata->ids.port_name = port_name; in fc_disc_gpn_id_resp()
600 else if (rdata->ids.port_name != port_name) { in fc_disc_gpn_id_resp()
603 rdata->ids.port_id, port_name); in fc_disc_gpn_id_resp()
604 mutex_unlock(&rdata->rp_mutex); in fc_disc_gpn_id_resp()
605 fc_rport_logoff(rdata); in fc_disc_gpn_id_resp()
607 new_rdata = fc_rport_create(lport, rdata->ids.port_id); in fc_disc_gpn_id_resp()
615 rdata->disc_id = disc->disc_id; in fc_disc_gpn_id_resp()
616 mutex_unlock(&rdata->rp_mutex); in fc_disc_gpn_id_resp()
617 fc_rport_login(rdata); in fc_disc_gpn_id_resp()
621 fc_rport_logoff(rdata); in fc_disc_gpn_id_resp()
633 kref_put(&rdata->kref, fc_rport_destroy); in fc_disc_gpn_id_resp()
644 struct fc_rport_priv *rdata) in fc_disc_gpn_id_req() argument
653 if (!lport->tt.elsct_send(lport, rdata->ids.port_id, fp, FC_NS_GPN_ID, in fc_disc_gpn_id_req()
654 fc_disc_gpn_id_resp, rdata, in fc_disc_gpn_id_req()
657 kref_get(&rdata->kref); in fc_disc_gpn_id_req()
668 struct fc_rport_priv *rdata; in fc_disc_single() local
672 rdata = fc_rport_create(lport, dp->port_id); in fc_disc_single()
673 if (!rdata) in fc_disc_single()
675 rdata->disc_id = 0; in fc_disc_single()
676 return fc_disc_gpn_id_req(lport, rdata); in fc_disc_single()