aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/scsi/libfc
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/scsi/libfc')
-rw-r--r--drivers/scsi/libfc/fc_rport.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/scsi/libfc/fc_rport.c b/drivers/scsi/libfc/fc_rport.c
index 5bf7a949f051..e675f5ac30cc 100644
--- a/drivers/scsi/libfc/fc_rport.c
+++ b/drivers/scsi/libfc/fc_rport.c
@@ -444,6 +444,7 @@ static void fc_rport_error(struct fc_rport *rport, struct fc_frame *fp)
444 case RPORT_ST_PRLI: 444 case RPORT_ST_PRLI:
445 case RPORT_ST_LOGO: 445 case RPORT_ST_LOGO:
446 rdata->event = RPORT_EV_FAILED; 446 rdata->event = RPORT_EV_FAILED;
447 fc_rport_state_enter(rport, RPORT_ST_NONE);
447 queue_work(rport_event_queue, 448 queue_work(rport_event_queue,
448 &rdata->event_work); 449 &rdata->event_work);
449 break; 450 break;
@@ -664,6 +665,7 @@ static void fc_rport_prli_resp(struct fc_seq *sp, struct fc_frame *fp,
664 } else { 665 } else {
665 FC_DBG("Bad ELS response\n"); 666 FC_DBG("Bad ELS response\n");
666 rdata->event = RPORT_EV_FAILED; 667 rdata->event = RPORT_EV_FAILED;
668 fc_rport_state_enter(rport, RPORT_ST_NONE);
667 queue_work(rport_event_queue, &rdata->event_work); 669 queue_work(rport_event_queue, &rdata->event_work);
668 } 670 }
669 671
@@ -715,6 +717,7 @@ static void fc_rport_logo_resp(struct fc_seq *sp, struct fc_frame *fp,
715 } else { 717 } else {
716 FC_DBG("Bad ELS response\n"); 718 FC_DBG("Bad ELS response\n");
717 rdata->event = RPORT_EV_LOGO; 719 rdata->event = RPORT_EV_LOGO;
720 fc_rport_state_enter(rport, RPORT_ST_NONE);
718 queue_work(rport_event_queue, &rdata->event_work); 721 queue_work(rport_event_queue, &rdata->event_work);
719 } 722 }
720 723
@@ -1293,6 +1296,7 @@ static void fc_rport_recv_logo_req(struct fc_rport *rport, struct fc_seq *sp,
1293 } 1296 }
1294 1297
1295 rdata->event = RPORT_EV_LOGO; 1298 rdata->event = RPORT_EV_LOGO;
1299 fc_rport_state_enter(rport, RPORT_ST_NONE);
1296 queue_work(rport_event_queue, &rdata->event_work); 1300 queue_work(rport_event_queue, &rdata->event_work);
1297 1301
1298 lport->tt.seq_els_rsp_send(sp, ELS_LS_ACC, NULL); 1302 lport->tt.seq_els_rsp_send(sp, ELS_LS_ACC, NULL);