diff options
Diffstat (limited to 'drivers/scsi/libfc/fc_lport.c')
-rw-r--r-- | drivers/scsi/libfc/fc_lport.c | 14 |
1 files changed, 6 insertions, 8 deletions
diff --git a/drivers/scsi/libfc/fc_lport.c b/drivers/scsi/libfc/fc_lport.c index 22c0f7bc004f..f33e5732e3fc 100644 --- a/drivers/scsi/libfc/fc_lport.c +++ b/drivers/scsi/libfc/fc_lport.c | |||
@@ -205,12 +205,11 @@ static void fc_lport_ptp_setup(struct fc_lport *lport, | |||
205 | ids.node_name = remote_wwnn; | 205 | ids.node_name = remote_wwnn; |
206 | ids.roles = FC_RPORT_ROLE_UNKNOWN; | 206 | ids.roles = FC_RPORT_ROLE_UNKNOWN; |
207 | 207 | ||
208 | if (lport->ptp_rp) { | 208 | mutex_lock(&lport->disc.disc_mutex); |
209 | if (lport->ptp_rp) | ||
209 | lport->tt.rport_logoff(lport->ptp_rp); | 210 | lport->tt.rport_logoff(lport->ptp_rp); |
210 | lport->ptp_rp = NULL; | ||
211 | } | ||
212 | |||
213 | lport->ptp_rp = lport->tt.rport_create(lport, &ids); | 211 | lport->ptp_rp = lport->tt.rport_create(lport, &ids); |
212 | mutex_unlock(&lport->disc.disc_mutex); | ||
214 | 213 | ||
215 | lport->tt.rport_login(lport->ptp_rp); | 214 | lport->tt.rport_login(lport->ptp_rp); |
216 | 215 | ||
@@ -931,10 +930,7 @@ static void fc_lport_reset_locked(struct fc_lport *lport) | |||
931 | if (lport->dns_rp) | 930 | if (lport->dns_rp) |
932 | lport->tt.rport_logoff(lport->dns_rp); | 931 | lport->tt.rport_logoff(lport->dns_rp); |
933 | 932 | ||
934 | if (lport->ptp_rp) { | 933 | lport->ptp_rp = NULL; |
935 | lport->tt.rport_logoff(lport->ptp_rp); | ||
936 | lport->ptp_rp = NULL; | ||
937 | } | ||
938 | 934 | ||
939 | lport->tt.disc_stop(lport); | 935 | lport->tt.disc_stop(lport); |
940 | 936 | ||
@@ -1304,7 +1300,9 @@ static void fc_lport_enter_dns(struct fc_lport *lport) | |||
1304 | 1300 | ||
1305 | fc_lport_state_enter(lport, LPORT_ST_DNS); | 1301 | fc_lport_state_enter(lport, LPORT_ST_DNS); |
1306 | 1302 | ||
1303 | mutex_lock(&lport->disc.disc_mutex); | ||
1307 | rdata = lport->tt.rport_create(lport, &ids); | 1304 | rdata = lport->tt.rport_create(lport, &ids); |
1305 | mutex_unlock(&lport->disc.disc_mutex); | ||
1308 | if (!rdata) | 1306 | if (!rdata) |
1309 | goto err; | 1307 | goto err; |
1310 | 1308 | ||