aboutsummaryrefslogtreecommitdiffstats
path: root/include/sys
diff options
context:
space:
mode:
authorBrian Behlendorf <[email protected]>2012-08-23 15:36:28 -0700
committerBrian Behlendorf <[email protected]>2012-08-27 12:00:55 -0700
commitcd5ca4b2f86a606aa6ed68341a3672fdde1c9856 (patch)
treeb5e199851176895ea5adb347103e5f5f61d22eb2 /include/sys
parent3e904f40b4f24db61798ca8c8a9027731cf2ced6 (diff)
Switch KM_SLEEP to KM_PUSHPAGE
Under certain circumstances the following functions may be called in a context where KM_SLEEP is unsafe and can result in a deadlocked system. To avoid this problem the unconditional KM_SLEEPs are converted to KM_PUSHPAGEs. This will prevent them from attempting to initiate any I/O during direct reclaim. Signed-off-by: Brian Behlendorf <[email protected]>
Diffstat (limited to 'include/sys')
-rw-r--r--include/sys/taskq.h1
1 files changed, 1 insertions, 0 deletions
diff --git a/include/sys/taskq.h b/include/sys/taskq.h
index a5d9492f2..a73f7703f 100644
--- a/include/sys/taskq.h
+++ b/include/sys/taskq.h
@@ -62,6 +62,7 @@ typedef struct taskq_ent {
*/
#define TQ_SLEEP KM_SLEEP
#define TQ_NOSLEEP KM_NOSLEEP
+#define TQ_PUSHPAGE KM_PUSHPAGE
#define TQ_NOQUEUE 0x01000000
#define TQ_NOALLOC 0x02000000
#define TQ_NEW 0x04000000