From 9cc432d55c5953a73ee33ceb558e6216d981f354 Mon Sep 17 00:00:00 2001 From: Mike Christie Date: Sat, 16 Aug 2008 20:05:33 -0500 Subject: [PATCH 3/9] libfc: call exch_done after transmitting confirmation Once we send the confirmation completion, we free the scsi command so there is nothing we can really do for scsi command processing. Also, would we normally get a response for this? What type of command is it? If we do not get a response them we leak the ep because we never call exch_done. This just has us send the confirmation, then call exch_done on the exchange so it gets freed and there are not references to the fsp. Signed-off-by: Mike Christie --- drivers/scsi/libfc/fc_fcp.c | 7 +++---- 1 files changed, 3 insertions(+), 4 deletions(-) diff --git a/drivers/scsi/libfc/fc_fcp.c b/drivers/scsi/libfc/fc_fcp.c index e61dae7..1c1696e 100644 --- a/drivers/scsi/libfc/fc_fcp.c +++ b/drivers/scsi/libfc/fc_fcp.c @@ -843,10 +843,9 @@ static void fc_fcp_complete(struct fc_fcp_pkt *fsp) f_ctl = FC_FC_SEQ_INIT; f_ctl |= FC_FC_LAST_SEQ | FC_FC_END_SEQ; lp->tt.seq_send(lp, csp, conf_frame, f_ctl); - } else - lp->tt.exch_done(csp); - } else - lp->tt.exch_done(sp); + } + } + lp->tt.exch_done(sp); } fc_io_compl(fsp); } -- 1.5.5.1