aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/s390/scsi/zfcp_scsi.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/s390/scsi/zfcp_scsi.c')
-rw-r--r--drivers/s390/scsi/zfcp_scsi.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/drivers/s390/scsi/zfcp_scsi.c b/drivers/s390/scsi/zfcp_scsi.c
index 967ede73f4c5..ba32709921a4 100644
--- a/drivers/s390/scsi/zfcp_scsi.c
+++ b/drivers/s390/scsi/zfcp_scsi.c
@@ -534,6 +534,9 @@ static void zfcp_scsi_rport_register(struct zfcp_port *port)
534 struct fc_rport_identifiers ids; 534 struct fc_rport_identifiers ids;
535 struct fc_rport *rport; 535 struct fc_rport *rport;
536 536
537 if (port->rport)
538 return;
539
537 ids.node_name = port->wwnn; 540 ids.node_name = port->wwnn;
538 ids.port_name = port->wwpn; 541 ids.port_name = port->wwpn;
539 ids.port_id = port->d_id; 542 ids.port_id = port->d_id;
@@ -557,8 +560,10 @@ static void zfcp_scsi_rport_block(struct zfcp_port *port)
557{ 560{
558 struct fc_rport *rport = port->rport; 561 struct fc_rport *rport = port->rport;
559 562
560 if (rport) 563 if (rport) {
561 fc_remote_port_delete(rport); 564 fc_remote_port_delete(rport);
565 port->rport = NULL;
566 }
562} 567}
563 568
564void zfcp_scsi_schedule_rport_register(struct zfcp_port *port) 569void zfcp_scsi_schedule_rport_register(struct zfcp_port *port)