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