]> git.proxmox.com Git - mirror_spl-debian.git/blobdiff - module/spl/spl-taskq.c
Revert "Switch KM_SLEEP to KM_PUSHPAGE"
[mirror_spl-debian.git] / module / spl / spl-taskq.c
index b58eb8e947cfc79274a13548443acde1f3148b40..e4092b8422f4a5b7db307427d834282fd9e50bac 100644 (file)
@@ -50,6 +50,8 @@ task_alloc(taskq_t *tq, uint_t flags)
         SENTRY;
 
         ASSERT(tq);
+        ASSERT(flags & (TQ_SLEEP | TQ_NOSLEEP));               /* One set */
+        ASSERT(!((flags & TQ_SLEEP) && (flags & TQ_NOSLEEP))); /* Not both */
         ASSERT(spin_is_locked(&tq->tq_lock));
 retry:
         /* Acquire taskq_ent_t's from free list if available */
@@ -552,7 +554,7 @@ __taskq_create(const char *name, int nthreads, pri_t pri,
                nthreads = MAX((num_online_cpus() * nthreads) / 100, 1);
        }
 
-        tq = kmem_alloc(sizeof(*tq), KM_PUSHPAGE);
+        tq = kmem_alloc(sizeof(*tq), KM_SLEEP);
         if (tq == NULL)
                 SRETURN(NULL);
 
@@ -578,12 +580,12 @@ __taskq_create(const char *name, int nthreads, pri_t pri,
 
         if (flags & TASKQ_PREPOPULATE)
                 for (i = 0; i < minalloc; i++)
-                        task_done(tq, task_alloc(tq, TQ_PUSHPAGE | TQ_NEW));
+                        task_done(tq, task_alloc(tq, TQ_SLEEP | TQ_NEW));
 
         spin_unlock_irqrestore(&tq->tq_lock, tq->tq_lock_flags);
 
        for (i = 0; i < nthreads; i++) {
-               tqt = kmem_alloc(sizeof(*tqt), KM_PUSHPAGE);
+               tqt = kmem_alloc(sizeof(*tqt), KM_SLEEP);
                INIT_LIST_HEAD(&tqt->tqt_thread_list);
                INIT_LIST_HEAD(&tqt->tqt_active_list);
                tqt->tqt_tq = tq;