From 3d8f34c50a996d3bb8001bfbbe320cf5c7890a54 Mon Sep 17 00:00:00 2001 From: Vladislav Bolkhovitin Date: Sat, 21 Dec 2013 05:08:26 +0000 Subject: [PATCH] Fix hang under load + avoid unneeded logging git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@5169 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- scst/src/scst_main.c | 10 +++++++--- 1 file changed, 7 insertions(+), 3 deletions(-) diff --git a/scst/src/scst_main.c b/scst/src/scst_main.c index 1226a6759..7cf78f504 100644 --- a/scst/src/scst_main.c +++ b/scst/src/scst_main.c @@ -894,8 +894,10 @@ static int scst_susp_wait(unsigned long timeout) } else if ((res < 0) && (timeout != SCST_SUSPEND_TIMEOUT_UNLIMITED)) goto out; - scst_trace_cmds(scst_to_syslog, &hp); - scst_trace_mcmds(scst_to_syslog, &hp); + if (res == 0) { + scst_trace_cmds(scst_to_syslog, &hp); + scst_trace_mcmds(scst_to_syslog, &hp); + } if (timeout != SCST_SUSPEND_TIMEOUT_UNLIMITED) { res = wait_event_interruptible_timeout(scst_dev_cmd_waitQ, @@ -904,8 +906,10 @@ static int scst_susp_wait(unsigned long timeout) res = -EBUSY; else if (res > 0) res = 0; - } else + } else { wait_event(scst_dev_cmd_waitQ, scst_get_cmd_counter() == 0); + res = 0; + } out: TRACE_MGMT_DBG("wait_event() returned %d", res);