Skip to content

Commit

Permalink
[SCSI] bfa: vport state machine fix
Browse files Browse the repository at this point in the history
Vport state machine does not cleanup associated lport in some states: while
waiting for fdisc response or fdisc failure state. The fixe is to cleanup lport
on vport delete in all states.  In fdisc state, discard fdisc response and
delete lport and wait for lport deletecompletion. in error state, delete lport
and wait for delete completion.

Signed-off-by: Jing Huang <huangj@brocade.com>
Signed-off-by: James Bottomley <James.Bottomley@suse.de>
  • Loading branch information
Jing Huang authored and James Bottomley committed Jul 27, 2010
1 parent d988354 commit 1769f99
Showing 1 changed file with 5 additions and 4 deletions.
9 changes: 5 additions & 4 deletions drivers/scsi/bfa/vport.c
Original file line number Diff line number Diff line change
Expand Up @@ -218,9 +218,9 @@ bfa_fcs_vport_sm_fdisc(struct bfa_fcs_vport_s *vport,

switch (event) {
case BFA_FCS_VPORT_SM_DELETE:
bfa_sm_set_state(vport, bfa_fcs_vport_sm_logo);
bfa_sm_set_state(vport, bfa_fcs_vport_sm_cleanup);
bfa_lps_discard(vport->lps);
bfa_fcs_vport_do_logo(vport);
bfa_fcs_port_delete(&vport->lport);
break;

case BFA_FCS_VPORT_SM_OFFLINE:
Expand Down Expand Up @@ -357,8 +357,9 @@ bfa_fcs_vport_sm_error(struct bfa_fcs_vport_s *vport,

switch (event) {
case BFA_FCS_VPORT_SM_DELETE:
bfa_sm_set_state(vport, bfa_fcs_vport_sm_uninit);
bfa_fcs_vport_free(vport);
bfa_sm_set_state(vport, bfa_fcs_vport_sm_cleanup);
bfa_fcs_port_delete(&vport->lport);

break;

default:
Expand Down

0 comments on commit 1769f99

Please sign in to comment.