From 6993f487745ce83f42d62ede61bb17e34e3e3a55 Mon Sep 17 00:00:00 2001 From: Vladislav Bolkhovitin Date: Fri, 14 Mar 2008 10:42:03 +0000 Subject: [PATCH] Fixes possible *dev_cmd_count leak git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@303 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- scst/src/scst_targ.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/scst/src/scst_targ.c b/scst/src/scst_targ.c index 4db63ea47..36c57e889 100644 --- a/scst/src/scst_targ.c +++ b/scst/src/scst_targ.c @@ -2312,9 +2312,6 @@ static int scst_pre_dev_done(struct scst_cmd *cmd) TRACE_ENTRY(); - atomic_dec(&cmd->tgt_dev->tgt_dev_cmd_count); - atomic_dec(&cmd->dev->dev_cmd_count); - rc = scst_done_cmd_check(cmd, &res); if (rc) goto out; @@ -2505,7 +2502,10 @@ static int scst_pre_xmit_response(struct scst_cmd *cmd) } #endif - if (cmd->tgt_dev != NULL) { + if (likely(cmd->tgt_dev != NULL)) { + atomic_dec(&cmd->tgt_dev->tgt_dev_cmd_count); + atomic_dec(&cmd->dev->dev_cmd_count); + if (unlikely(cmd->queue_type == SCST_CMD_QUEUE_HEAD_OF_QUEUE)) scst_on_hq_cmd_response(cmd);