[SCSI] libfc: Move the port_id into lport
This patch creates a port_id member in struct fc_lport. This allows libfc to just deal with fc_lport instances instead of calling into the fc_host to get the port_id. This change helps in only using symbols necessary for operation from the libfc structures. libfc still needs to change the fc_host_port_id() if the port_id changes so the presentation layer (scsi_transport_fc) can provide the user with the correct value, but libfc shouldn't rely on the presentation layer for operational values. Signed-off-by: Robert Love <robert.w.love@intel.com> Signed-off-by: James Bottomley <James.Bottomley@suse.de>
This commit is contained in:
committed by
James Bottomley
parent
5e4f8fe7b5
commit
7b2787ec15
@@ -565,7 +565,7 @@ void __fc_linkup(struct fc_lport *lport)
|
||||
void fc_linkup(struct fc_lport *lport)
|
||||
{
|
||||
printk(KERN_INFO "host%d: libfc: Link up on port (%6.6x)\n",
|
||||
lport->host->host_no, fc_host_port_id(lport->host));
|
||||
lport->host->host_no, lport->port_id);
|
||||
|
||||
mutex_lock(&lport->lp_mutex);
|
||||
__fc_linkup(lport);
|
||||
@@ -595,7 +595,7 @@ void __fc_linkdown(struct fc_lport *lport)
|
||||
void fc_linkdown(struct fc_lport *lport)
|
||||
{
|
||||
printk(KERN_INFO "host%d: libfc: Link down on port (%6.6x)\n",
|
||||
lport->host->host_no, fc_host_port_id(lport->host));
|
||||
lport->host->host_no, lport->port_id);
|
||||
|
||||
mutex_lock(&lport->lp_mutex);
|
||||
__fc_linkdown(lport);
|
||||
@@ -697,7 +697,7 @@ void fc_lport_disc_callback(struct fc_lport *lport, enum fc_disc_event event)
|
||||
case DISC_EV_FAILED:
|
||||
printk(KERN_ERR "host%d: libfc: "
|
||||
"Discovery failed for port (%6.6x)\n",
|
||||
lport->host->host_no, fc_host_port_id(lport->host));
|
||||
lport->host->host_no, lport->port_id);
|
||||
mutex_lock(&lport->lp_mutex);
|
||||
fc_lport_enter_reset(lport);
|
||||
mutex_unlock(&lport->lp_mutex);
|
||||
@@ -745,7 +745,11 @@ static void fc_lport_set_port_id(struct fc_lport *lport, u32 port_id,
|
||||
printk(KERN_INFO "host%d: Assigned Port ID %6.6x\n",
|
||||
lport->host->host_no, port_id);
|
||||
|
||||
lport->port_id = port_id;
|
||||
|
||||
/* Update the fc_host */
|
||||
fc_host_port_id(lport->host) = port_id;
|
||||
|
||||
if (lport->tt.lport_set_port_id)
|
||||
lport->tt.lport_set_port_id(lport, port_id, fp);
|
||||
}
|
||||
@@ -950,7 +954,7 @@ static void fc_lport_reset_locked(struct fc_lport *lport)
|
||||
lport->tt.exch_mgr_reset(lport, 0, 0);
|
||||
fc_host_fabric_name(lport->host) = 0;
|
||||
|
||||
if (fc_host_port_id(lport->host))
|
||||
if (lport->port_id)
|
||||
fc_lport_set_port_id(lport, 0, NULL);
|
||||
}
|
||||
|
||||
@@ -1695,7 +1699,7 @@ static int fc_lport_els_request(struct fc_bsg_job *job,
|
||||
fh = fc_frame_header_get(fp);
|
||||
fh->fh_r_ctl = FC_RCTL_ELS_REQ;
|
||||
hton24(fh->fh_d_id, did);
|
||||
hton24(fh->fh_s_id, fc_host_port_id(lport->host));
|
||||
hton24(fh->fh_s_id, lport->port_id);
|
||||
fh->fh_type = FC_TYPE_ELS;
|
||||
hton24(fh->fh_f_ctl, FC_FC_FIRST_SEQ |
|
||||
FC_FC_END_SEQ | FC_FC_SEQ_INIT);
|
||||
@@ -1755,7 +1759,7 @@ static int fc_lport_ct_request(struct fc_bsg_job *job,
|
||||
fh = fc_frame_header_get(fp);
|
||||
fh->fh_r_ctl = FC_RCTL_DD_UNSOL_CTL;
|
||||
hton24(fh->fh_d_id, did);
|
||||
hton24(fh->fh_s_id, fc_host_port_id(lport->host));
|
||||
hton24(fh->fh_s_id, lport->port_id);
|
||||
fh->fh_type = FC_TYPE_CT;
|
||||
hton24(fh->fh_f_ctl, FC_FC_FIRST_SEQ |
|
||||
FC_FC_END_SEQ | FC_FC_SEQ_INIT);
|
||||
|
Reference in New Issue
Block a user