aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/libfc
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/libfc')
-rw-r--r--drivers/scsi/libfc/fc_lport.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/drivers/scsi/libfc/fc_lport.c b/drivers/scsi/libfc/fc_lport.c
index 52c4f2dfcfd..4cd953378c5 100644
--- a/drivers/scsi/libfc/fc_lport.c
+++ b/drivers/scsi/libfc/fc_lport.c
@@ -618,6 +618,11 @@ int fc_fabric_logoff(struct fc_lport *lport)
618{ 618{
619 lport->tt.disc_stop_final(lport); 619 lport->tt.disc_stop_final(lport);
620 mutex_lock(&lport->lp_mutex); 620 mutex_lock(&lport->lp_mutex);
621 if (lport->dns_rp)
622 lport->tt.rport_logoff(lport->dns_rp);
623 mutex_unlock(&lport->lp_mutex);
624 lport->tt.rport_flush_queue();
625 mutex_lock(&lport->lp_mutex);
621 fc_lport_enter_logo(lport); 626 fc_lport_enter_logo(lport);
622 mutex_unlock(&lport->lp_mutex); 627 mutex_unlock(&lport->lp_mutex);
623 cancel_delayed_work_sync(&lport->retry_work); 628 cancel_delayed_work_sync(&lport->retry_work);
@@ -1408,10 +1413,6 @@ static void fc_lport_enter_logo(struct fc_lport *lport)
1408 1413
1409 fc_lport_state_enter(lport, LPORT_ST_LOGO); 1414 fc_lport_state_enter(lport, LPORT_ST_LOGO);
1410 1415
1411 /* DNS session should be closed so we can release it here */
1412 if (lport->dns_rp)
1413 lport->tt.rport_logoff(lport->dns_rp);
1414
1415 fp = fc_frame_alloc(lport, sizeof(*logo)); 1416 fp = fc_frame_alloc(lport, sizeof(*logo));
1416 if (!fp) { 1417 if (!fp) {
1417 fc_lport_error(lport, fp); 1418 fc_lport_error(lport, fp);