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; }