diff options
author | Krishna Gudipati <kgudipat@brocade.com> | 2010-03-05 22:35:16 -0500 |
---|---|---|
committer | James Bottomley <James.Bottomley@suse.de> | 2010-03-07 02:24:38 -0500 |
commit | 72041ed8fc8ed92c11af90949bab7b08f3e34fd3 (patch) | |
tree | fdbb1d0d345790744969fd875116fd128bf8f512 /drivers/scsi | |
parent | e641de37e67953fa9ecad72608942481a5d66a1d (diff) |
[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/scsi')
-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, | |||
925 | case RPSM_EVENT_HCB_OFFLINE: | 925 | case RPSM_EVENT_HCB_OFFLINE: |
926 | case RPSM_EVENT_ADDRESS_CHANGE: | 926 | case RPSM_EVENT_ADDRESS_CHANGE: |
927 | if (bfa_fcs_port_is_online(rport->port)) { | 927 | if (bfa_fcs_port_is_online(rport->port)) { |
928 | bfa_sm_set_state(rport, | 928 | if (bfa_fcs_fabric_is_switched(rport->port->fabric)) { |
929 | bfa_fcs_rport_sm_nsdisc_sending); | 929 | bfa_sm_set_state(rport, |
930 | rport->ns_retries = 0; | 930 | bfa_fcs_rport_sm_nsdisc_sending); |
931 | bfa_fcs_rport_send_gidpn(rport, NULL); | 931 | rport->ns_retries = 0; |
932 | bfa_fcs_rport_send_gidpn(rport, NULL); | ||
933 | } else { | ||
934 | bfa_sm_set_state(rport, | ||
935 | bfa_fcs_rport_sm_plogi_sending); | ||
936 | rport->plogi_retries = 0; | ||
937 | bfa_fcs_rport_send_plogi(rport, NULL); | ||
938 | } | ||
932 | } else { | 939 | } else { |
933 | rport->pid = 0; | 940 | rport->pid = 0; |
934 | bfa_sm_set_state(rport, bfa_fcs_rport_sm_offline); | 941 | bfa_sm_set_state(rport, bfa_fcs_rport_sm_offline); |