mutex_unlock(&disc->disc_mutex);
}
-/**
- * fc_disc_rport_callback() - Event handler for rport events
- * @lport: The lport which is receiving the event
- * @rdata: private remote port data
- * @event: The event that occured
- *
- * Locking Note: The rport lock should not be held when calling
- * this function.
- */
-static void fc_disc_rport_callback(struct fc_lport *lport,
- struct fc_rport_priv *rdata,
- enum fc_rport_event event)
-{
- struct fc_disc *disc = &lport->disc;
-
- FC_DISC_DBG(disc, "Received a %d event for port (%6x)\n", event,
- rdata->ids.port_id);
-
- switch (event) {
- case RPORT_EV_READY:
- break;
- case RPORT_EV_LOGO:
- case RPORT_EV_FAILED:
- case RPORT_EV_STOP:
- break;
- default:
- break;
- }
-
-}
-
/**
* fc_disc_recv_rscn_req() - Handle Registered State Change Notification (RSCN)
* @sp: Current sequence of the RSCN exchange
mutex_unlock(&disc->disc_mutex);
}
-static struct fc_rport_operations fc_disc_rport_ops = {
- .event_callback = fc_disc_rport_callback,
-};
-
/**
* fc_disc_new_target() - Handle new target found by discovery
* @lport: FC local port
if (!rdata)
error = -ENOMEM;
}
- if (rdata) {
- rdata->ops = &fc_disc_rport_ops;
+ if (rdata)
lport->tt.rport_login(rdata);
- }
}
return error;
}
if (ids.port_id != fc_host_port_id(lport->host) &&
ids.port_name != lport->wwpn) {
rdata = lport->tt.rport_create(lport, &ids);
- if (rdata) {
- rdata->ops = &fc_disc_rport_ops;
+ if (rdata)
lport->tt.rport_login(rdata);
- } else
+ else
printk(KERN_WARNING "libfc: Failed to allocate "
"memory for the newly discovered port "
"(%6x)\n", ids.port_id);
rdata = lport->tt.rport_create(lport, &dp->ids);
if (rdata) {
- rdata->ops = &fc_disc_rport_ops;
kfree(dp);
lport->tt.rport_login(rdata);
}
rp->r_a_tov = rdata->r_a_tov;
mutex_unlock(&rdata->rp_mutex);
- if (rport_ops->event_callback) {
+ if (rport_ops && rport_ops->event_callback) {
FC_RPORT_DBG(rdata, "callback ev %d\n", event);
rport_ops->event_callback(lport, rdata, event);
}
mutex_unlock(&lport->disc.disc_mutex);
}
- if (rport_ops->event_callback) {
+ if (rport_ops && rport_ops->event_callback) {
FC_RPORT_DBG(rdata, "callback ev %d\n", event);
rport_ops->event_callback(lport, rdata, event);
}