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
This commit is contained in:
Bart Van Assche
2019-01-05 21:56:37 +00:00
parent 656931dfce
commit a77563897a

View File

@@ -21,6 +21,7 @@
#include <linux/types.h>
#include <linux/slab.h>
#include <linux/delay.h>
#if LINUX_VERSION_CODE >= KERNEL_VERSION(3, 2, 0)
#include <linux/export.h>
#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.