Lines Matching refs:rdata
2007 * @rdata: libfc remote port
2009 static inline struct fcoe_rport *fcoe_ctlr_rport(struct fc_rport_priv *rdata)
2011 return container_of(rdata, struct fcoe_rport, rdata);
2121 * @rdata: remote port private data
2127 struct fc_rport_priv *rdata,
2131 struct fcoe_rport *frport = fcoe_ctlr_rport(rdata);
2134 rdata->ids.port_id, event);
2148 rdata->ids.port_id);
2149 fc_rport_logoff(rdata);
2170 struct fc_rport_priv *rdata;
2173 list_for_each_entry_rcu(rdata, &lport->disc.rports, peers) {
2174 if (kref_get_unless_zero(&rdata->kref)) {
2175 fc_rport_logoff(rdata);
2176 kref_put(&rdata->kref, fc_rport_destroy);
2351 frport->rdata.ids.node_name =
2359 frport->rdata.ids.port_id = ntoh24(vn->fd_fc_id);
2360 frport->rdata.ids.port_name =
2414 if (frport->rdata.ids.port_id != fip->port_id)
2434 if (fip->lp->wwpn > frport->rdata.ids.port_name &&
2465 if (frport->rdata.ids.port_id != fip->port_id)
2488 * @new: newly-parsed FCoE rport as a template for new rdata
2495 struct fc_rport_priv *rdata;
2500 port_id = new->rdata.ids.port_id;
2505 rdata = fc_rport_create(lport, port_id);
2506 if (!rdata) {
2510 mutex_lock(&rdata->rp_mutex);
2513 rdata->ops = &fcoe_ctlr_vn_rport_ops;
2514 rdata->disc_id = lport->disc.disc_id;
2516 ids = &rdata->ids;
2518 ids->port_name != new->rdata.ids.port_name) ||
2520 ids->node_name != new->rdata.ids.node_name)) {
2521 mutex_unlock(&rdata->rp_mutex);
2523 fc_rport_logoff(rdata);
2524 mutex_lock(&rdata->rp_mutex);
2526 ids->port_name = new->rdata.ids.port_name;
2527 ids->node_name = new->rdata.ids.node_name;
2528 mutex_unlock(&rdata->rp_mutex);
2530 frport = fcoe_ctlr_rport(rdata);
2533 rdata->rp_state);
2553 struct fc_rport_priv *rdata;
2557 rdata = fc_rport_lookup(lport, port_id);
2558 if (rdata) {
2559 frport = fcoe_ctlr_rport(rdata);
2562 kref_put(&rdata->kref, fc_rport_destroy);
2570 * @new: newly-parsed FCoE rport as a template for new rdata
2586 if (new->rdata.ids.port_id == fip->port_id) {
2595 if (new->rdata.ids.port_id == fip->port_id) {
2596 if (new->rdata.ids.port_name > fip->lp->wwpn) {
2608 new->rdata.ids.port_id);
2617 new->rdata.ids.port_id);
2633 new->rdata.ids.port_id, fcoe_ctlr_state(fip->state));
2649 struct fc_rport_priv *rdata;
2657 rdata = fc_rport_lookup(lport, new->rdata.ids.port_id);
2658 if (rdata) {
2659 if (rdata->ids.node_name == new->rdata.ids.node_name &&
2660 rdata->ids.port_name == new->rdata.ids.port_name) {
2661 frport = fcoe_ctlr_rport(rdata);
2664 rdata->ids.port_id);
2668 rdata->ids.port_id);
2669 fc_rport_login(rdata);
2673 kref_put(&rdata->kref, fc_rport_destroy);
2685 new->rdata.ids.port_id);
2702 struct fc_rport_priv *rdata;
2709 list_for_each_entry_rcu(rdata, &lport->disc.rports, peers) {
2710 if (!kref_get_unless_zero(&rdata->kref))
2712 frport = fcoe_ctlr_rport(rdata);
2714 kref_put(&rdata->kref, fc_rport_destroy);
2723 rdata->ids.port_name, rdata->ids.port_id);
2724 fc_rport_logoff(rdata);
2727 kref_put(&rdata->kref, fc_rport_destroy);
2871 frport->rdata.ids.node_name =
3057 struct fc_rport_priv *rdata;
3064 list_for_each_entry_rcu(rdata, &disc->rports, peers) {
3065 if (!kref_get_unless_zero(&rdata->kref))
3067 frport = fcoe_ctlr_rport(rdata);
3069 fc_rport_login(rdata);
3070 kref_put(&rdata->kref, fc_rport_destroy);