From 370f457ca117530bb36d5bed5387ae01e1fe8af7 Mon Sep 17 00:00:00 2001 From: Abhijeet Joglekar Date: Fri, 27 Feb 2009 10:54:41 -0800 Subject: [PATCH] --- yaml --- r: 132315 b: refs/heads/master c: 571f824c3cd7b7f5a40ba100f7e576b6b0fe826a h: refs/heads/master i: 132313: 9af6b636fd91e7d31ddff818e5a207a5f6bb05d8 132311: c0ca5a62f4f196ca5ef5b3233701b2bb4f6a97c9 v: v3 --- [refs] | 2 +- trunk/drivers/scsi/libfc/fc_rport.c | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/[refs] b/[refs] index 5b42a6dcbe66..4678d6d7bd36 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 1f6ff364ceda516f88351a8ab640e656beed0b26 +refs/heads/master: 571f824c3cd7b7f5a40ba100f7e576b6b0fe826a diff --git a/trunk/drivers/scsi/libfc/fc_rport.c b/trunk/drivers/scsi/libfc/fc_rport.c index dec7bae0e56d..717575934152 100644 --- a/trunk/drivers/scsi/libfc/fc_rport.c +++ b/trunk/drivers/scsi/libfc/fc_rport.c @@ -214,6 +214,7 @@ static void fc_rport_state_enter(struct fc_rport *rport, static void fc_rport_work(struct work_struct *work) { + u32 port_id; struct fc_rport_libfc_priv *rdata = container_of(work, struct fc_rport_libfc_priv, event_work); enum fc_rport_event event; @@ -279,8 +280,12 @@ static void fc_rport_work(struct work_struct *work) rport_ops->event_callback(lport, rport, event); if (trans_state == FC_PORTSTATE_ROGUE) put_device(&rport->dev); - else + else { + port_id = rport->port_id; fc_remote_port_delete(rport); + lport->tt.exch_mgr_reset(lport, 0, port_id); + lport->tt.exch_mgr_reset(lport, port_id, 0); + } } else mutex_unlock(&rdata->rp_mutex); }