From 7d18d72a0c85bcd780c06a90a806c0fbb27ccdee Mon Sep 17 00:00:00 2001 From: Vladislav Bolkhovitin Date: Tue, 26 Apr 2011 00:23:54 +0000 Subject: [PATCH] Merge of the trunk's r3412: Fix for crash on retry after double reset UA reported by Matteo Tescione git-svn-id: http://svn.code.sf.net/p/scst/svn/branches/2.1.0.x@3418 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- scst/src/scst_pres.h | 6 +++++- scst/src/scst_targ.c | 1 + 2 files changed, 6 insertions(+), 1 deletion(-) diff --git a/scst/src/scst_pres.h b/scst/src/scst_pres.h index 7fc6013a2..248b61357 100644 --- a/scst/src/scst_pres.h +++ b/scst/src/scst_pres.h @@ -72,7 +72,11 @@ static inline void scst_dec_pr_readers_count(struct scst_cmd *cmd, { struct scst_device *dev = cmd->dev; - EXTRACHECKS_BUG_ON(!cmd->dec_pr_readers_count_needed); + /* + * scst_check_local_events() should not be called twice for the + * same cmd + */ + WARN_ON(!cmd->dec_pr_readers_count_needed); if (!locked) spin_lock_bh(&dev->dev_lock); diff --git a/scst/src/scst_targ.c b/scst/src/scst_targ.c index bcbb7bea5..f5ab19f98 100644 --- a/scst/src/scst_targ.c +++ b/scst/src/scst_targ.c @@ -2939,6 +2939,7 @@ static int scst_check_sense(struct scst_cmd *cmd) cmd->state = SCST_CMD_STATE_REAL_EXEC; cmd->retry = 1; + scst_inc_pr_readers_count(cmd, false); res = 1; goto out; }