From: Mike Christie <[EMAIL PROTECTED]>
If an abort times out fc_exch_timeout just sets
the state to ESB_ST_COMPLETE, and we may never hear
from it again. If scsi-ml initiated the abort then
we will try lun reset then a port reset. And without
the resp = NULL change in
"libfc: make sure we cleanup the ep in fc_exch_reset"
we would see the ESB_ST_COMPLETE then not call the
the upper layers to free the ep and fsp.
In the old code fc_exch_reset would not have wanted to call the upper layers
in this case so that was my fault.
However, in the old code if fc_exch.c initaited the abort, fc_exch_reset
would want to notify the upper layer so they could free the fsp,
so these patches fix that.
And as a side note. I thought for non fcp commands we would
want to escalate the internal error handler so we do something.
For fcp commands we can just let scsi-ml handle it.
Signed-off-by: Mike Christie <[EMAIL PROTECTED]>
---
drivers/scsi/libfc/fc_exch.c | 3 ---
1 files changed, 0 insertions(+), 3 deletions(-)
diff --git a/drivers/scsi/libfc/fc_exch.c b/drivers/scsi/libfc/fc_exch.c
index 0378e58..7d7a3ef 100644
--- a/drivers/scsi/libfc/fc_exch.c
+++ b/drivers/scsi/libfc/fc_exch.c
@@ -394,9 +394,6 @@ static void fc_exch_timeout(unsigned long ep_arg)
spin_unlock_bh(&ep->ex_lock);
if (e_stat & ESB_ST_REC_QUAL)
fc_exch_rrq(ep);
- } else if (e_stat & ESB_ST_ABNORMAL) {
- ep->esb_stat |= ESB_ST_COMPLETE;
- spin_unlock_bh(&ep->ex_lock);
} else {
resp = ep->resp;
arg = ep->resp_arg;
--
1.5.4.1
_______________________________________________
devel mailing list
[email protected]
http://www.open-fcoe.org/mailman/listinfo/devel