diff options
author | Krishna Gudipati <kgudipat@brocade.com> | 2010-03-06 04:35:16 +0100 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2010-03-07 08:24:38 +0100 |
commit | 72041ed8fc8ed92c11af90949bab7b08f3e34fd3 (patch) | |
tree | fdbb1d0d345790744969fd875116fd128bf8f512 /drivers | |
parent | [SCSI] bfa: Replace bfa_assert() with bfa_sm_fault() (diff) | |
download | linux-72041ed8fc8ed92c11af90949bab7b08f3e34fd3.tar.xz linux-72041ed8fc8ed92c11af90949bab7b08f3e34fd3.zip |
[SCSI] bfa: RPORT state machine: direct attach mode fix.
Make sure that in direct attach mode, we do not query the name server
after a target is marked offline.
Signed-off-by: Krishna Gudipati <kgudipat@brocade.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/scsi/bfa/rport.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/drivers/scsi/bfa/rport.c b/drivers/scsi/bfa/rport.c index 32cf180ec791..80592e352226 100644 --- a/drivers/scsi/bfa/rport.c +++ b/drivers/scsi/bfa/rport.c @@ -925,10 +925,17 @@ bfa_fcs_rport_sm_hcb_offline(struct bfa_fcs_rport_s *rport, case RPSM_EVENT_HCB_OFFLINE: case RPSM_EVENT_ADDRESS_CHANGE: if (bfa_fcs_port_is_online(rport->port)) { - bfa_sm_set_state(rport, - bfa_fcs_rport_sm_nsdisc_sending); - rport->ns_retries = 0; - bfa_fcs_rport_send_gidpn(rport, NULL); + if (bfa_fcs_fabric_is_switched(rport->port->fabric)) { + bfa_sm_set_state(rport, + bfa_fcs_rport_sm_nsdisc_sending); + rport->ns_retries = 0; + bfa_fcs_rport_send_gidpn(rport, NULL); + } else { + bfa_sm_set_state(rport, + bfa_fcs_rport_sm_plogi_sending); + rport->plogi_retries = 0; + bfa_fcs_rport_send_plogi(rport, NULL); + } } else { rport->pid = 0; bfa_sm_set_state(rport, bfa_fcs_rport_sm_offline); |