aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorBrian Behlendorf <[email protected]>2010-04-23 14:39:47 -0700
committerBrian Behlendorf <[email protected]>2010-04-23 14:39:47 -0700
commitd05ec4b45f77c0f401098d88b5299ef090c73ca9 (patch)
tree8cbdb69e73809969ae0482f0fed2a6ad00ae75b8
parent663e02a135953a432c8497916657a29cbcd93c01 (diff)
Assume TQ_SLEEP when not explicitly specified.
-rw-r--r--module/spl/spl-taskq.c5
1 files changed, 5 insertions, 0 deletions
diff --git a/module/spl/spl-taskq.c b/module/spl/spl-taskq.c
index 16b1382d9..64719d762 100644
--- a/module/spl/spl-taskq.c
+++ b/module/spl/spl-taskq.c
@@ -248,6 +248,11 @@ __taskq_dispatch(taskq_t *tq, task_func_t func, void *arg, uint_t flags)
ASSERT(tq);
ASSERT(func);
+
+ /* Solaris assumes TQ_SLEEP if not passed explicitly */
+ if (!(flags & (TQ_SLEEP | TQ_NOSLEEP)))
+ flags |= TQ_SLEEP;
+
if (unlikely(in_atomic() && (flags & TQ_SLEEP))) {
CERROR("May schedule while atomic: %s/0x%08x/%d\n",
current->comm, preempt_count(), current->pid);