From a77563897a60447ed6964631995eefeeb17d1393 Mon Sep 17 00:00:00 2001 From: Bart Van Assche Date: Sat, 5 Jan 2019 21:56:37 +0000 Subject: [PATCH] scst: Avoid that a high I/O load prevents activity to be suspended git-svn-id: http://svn.code.sf.net/p/scst/svn/trunk@7862 d57e44dd-8a1f-0410-8b47-8ef2f437770f --- scst/src/scst_priv.h | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/scst/src/scst_priv.h b/scst/src/scst_priv.h index d617ed949..063a7f083 100644 --- a/scst/src/scst_priv.h +++ b/scst/src/scst_priv.h @@ -21,6 +21,7 @@ #include #include +#include #if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 2, 0) #include #endif @@ -773,6 +774,14 @@ int scst_get_suspend_count(void); static inline atomic_t *scst_get(void) { atomic_t *a; + + /* + * Avoid that a high I/O load prevents activity to be suspended. See + * also http://sourceforge.net/p/scst/mailman/message/34074831/. + */ + if (unlikely(test_bit(SCST_FLAG_SUSPENDING, &scst_flags))) + mdelay(100); + /* * We don't mind if we because of preemption inc counter from another * CPU as soon in the majority cases we will the correct one.