[SCSI] zfcp: Add port only once to FC transport class
When calling fc_remote_port_add make sure to not call it again before fc_remote_port_delete has been called. In other words, ensure to create a new fc_rport, then delete it, then create a new one again. Reviewed-by: Swen Schillig <swen@vnet.ibm.com> Signed-off-by: Christof Schmitt <christof.schmitt@de.ibm.com> Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
This commit is contained in:
parent
cbf1ed0264
commit
379d6bf657
@ -534,6 +534,9 @@ static void zfcp_scsi_rport_register(struct zfcp_port *port)
|
|||||||
struct fc_rport_identifiers ids;
|
struct fc_rport_identifiers ids;
|
||||||
struct fc_rport *rport;
|
struct fc_rport *rport;
|
||||||
|
|
||||||
|
if (port->rport)
|
||||||
|
return;
|
||||||
|
|
||||||
ids.node_name = port->wwnn;
|
ids.node_name = port->wwnn;
|
||||||
ids.port_name = port->wwpn;
|
ids.port_name = port->wwpn;
|
||||||
ids.port_id = port->d_id;
|
ids.port_id = port->d_id;
|
||||||
@ -557,8 +560,10 @@ static void zfcp_scsi_rport_block(struct zfcp_port *port)
|
|||||||
{
|
{
|
||||||
struct fc_rport *rport = port->rport;
|
struct fc_rport *rport = port->rport;
|
||||||
|
|
||||||
if (rport)
|
if (rport) {
|
||||||
fc_remote_port_delete(rport);
|
fc_remote_port_delete(rport);
|
||||||
|
port->rport = NULL;
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
void zfcp_scsi_schedule_rport_register(struct zfcp_port *port)
|
void zfcp_scsi_schedule_rport_register(struct zfcp_port *port)
|
||||||
|
Loading…
Reference in New Issue
Block a user