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()
258 struct fc_rport_priv *rdata; in fc_disc_done() local
278 list_for_each_entry(rdata, &disc->rports, peers) { in fc_disc_done()
279 if (!kref_get_unless_zero(&rdata->kref)) in fc_disc_done()
281 if (rdata->disc_id) { in fc_disc_done()
282 if (rdata->disc_id == disc->disc_id) in fc_disc_done()
283 fc_rport_login(rdata); in fc_disc_done()
285 fc_rport_logoff(rdata); in fc_disc_done()
287 kref_put(&rdata->kref, fc_rport_destroy); in fc_disc_done()
388 struct fc_rport_priv *rdata; in fc_disc_gpn_ft_parse() local
436 rdata = fc_rport_create(lport, ids.port_id); in fc_disc_gpn_ft_parse()
437 if (rdata) { in fc_disc_gpn_ft_parse()
438 rdata->ids.port_name = ids.port_name; in fc_disc_gpn_ft_parse()
439 rdata->disc_id = disc->disc_id; in fc_disc_gpn_ft_parse()
571 struct fc_rport_priv *rdata = rdata_arg; in fc_disc_gpn_id_resp() local
579 lport = rdata->local_port; in fc_disc_gpn_id_resp()
596 mutex_lock(&rdata->rp_mutex); in fc_disc_gpn_id_resp()
597 if (rdata->ids.port_name == -1) in fc_disc_gpn_id_resp()
598 rdata->ids.port_name = port_name; in fc_disc_gpn_id_resp()
599 else if (rdata->ids.port_name != port_name) { in fc_disc_gpn_id_resp()
602 rdata->ids.port_id, port_name); in fc_disc_gpn_id_resp()
603 mutex_unlock(&rdata->rp_mutex); in fc_disc_gpn_id_resp()
604 fc_rport_logoff(rdata); in fc_disc_gpn_id_resp()
606 new_rdata = fc_rport_create(lport, rdata->ids.port_id); in fc_disc_gpn_id_resp()
614 rdata->disc_id = disc->disc_id; in fc_disc_gpn_id_resp()
615 mutex_unlock(&rdata->rp_mutex); in fc_disc_gpn_id_resp()
616 fc_rport_login(rdata); in fc_disc_gpn_id_resp()
620 fc_rport_logoff(rdata); in fc_disc_gpn_id_resp()
630 kref_put(&rdata->kref, fc_rport_destroy); in fc_disc_gpn_id_resp()
641 struct fc_rport_priv *rdata) in fc_disc_gpn_id_req() argument
650 if (!lport->tt.elsct_send(lport, rdata->ids.port_id, fp, FC_NS_GPN_ID, in fc_disc_gpn_id_req()
651 fc_disc_gpn_id_resp, rdata, in fc_disc_gpn_id_req()
654 kref_get(&rdata->kref); in fc_disc_gpn_id_req()
665 struct fc_rport_priv *rdata; in fc_disc_single() local
669 rdata = fc_rport_create(lport, dp->port_id); in fc_disc_single()
670 if (!rdata) in fc_disc_single()
672 rdata->disc_id = 0; in fc_disc_single()
673 return fc_disc_gpn_id_req(lport, rdata); in fc_disc_single()