]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
[SCSI] libfc: Change state to NONE in fc_lport_destroy
authorAbhijeet Joglekar <abjoglek@cisco.com>
Tue, 21 Apr 2009 23:27:14 +0000 (16:27 -0700)
committerJames Bottomley <James.Bottomley@HansenPartnership.com>
Mon, 27 Apr 2009 15:19:01 +0000 (10:19 -0500)
After lport_destroy, the local port should not be used again. Transition
to state NONE, any incoming frames or link up should not transition out
of this state since we are deleting exchange table and cleaning up the
local port. Also, mark link as down.

Signed-off-by: Abhijeet Joglekar <abjoglek@cisco.com>
Signed-off-by: Robert Love <robert.w.love@intel.com>
Signed-off-by: James Bottomley <James.Bottomley@HansenPartnership.com>
drivers/scsi/libfc/fc_lport.c

index 4cd953378c57c4624e1ad5d0b6de4519988915a6..e0c247724d2bc6aa352db42ffd2028e08bfc7222 100644 (file)
@@ -644,7 +644,12 @@ EXPORT_SYMBOL(fc_fabric_logoff);
  */
 int fc_lport_destroy(struct fc_lport *lport)
 {
+       mutex_lock(&lport->lp_mutex);
+       lport->state = LPORT_ST_NONE;
+       lport->link_up = 0;
        lport->tt.frame_send = fc_frame_drop;
+       mutex_unlock(&lport->lp_mutex);
+
        lport->tt.fcp_abort_io(lport);
        lport->tt.exch_mgr_reset(lport, 0, 0);
        return 0;