From cfa90dc0874aaac7f9f3a84163259458cb773d4d Mon Sep 17 00:00:00 2001 From: Vladislav Bolkhovitin Date: Mon, 18 Oct 2010 18:39:00 +0000 Subject: [PATCH] Fix possible crash on ABORT TASK SET TM command git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@2422 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- scst/src/scst_targ.c | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/scst/src/scst_targ.c b/scst/src/scst_targ.c index a3e8f2ed1..31497f397 100644 --- a/scst/src/scst_targ.c +++ b/scst/src/scst_targ.c @@ -4853,8 +4853,12 @@ static int scst_abort_task_set(struct scst_mgmt_cmd *mcmd) __scst_abort_task_set(mcmd, tgt_dev); - if (atomic_dec_and_test(&mcmd->origin_pr_cmd->pr_abort_counter->pr_aborting_cnt)) - complete_all(&mcmd->origin_pr_cmd->pr_abort_counter->pr_aborting_cmpl); + if (mcmd->fn == SCST_PR_ABORT_ALL) { + struct scst_pr_abort_all_pending_mgmt_cmds_counter *pr_cnt = + mcmd->origin_pr_cmd->pr_abort_counter; + if (atomic_dec_and_test(&pr_cnt->pr_aborting_cnt)) + complete_all(&pr_cnt->pr_aborting_cmpl); + } tm_dbg_task_mgmt(mcmd->mcmd_tgt_dev->dev, "ABORT TASK SET/PR ABORT", 0);