Illumos #1557 assertion failed in userland taskq_destroy()
authorGarrett D'Amore <garrett@damore.org>
Fri, 11 Jan 2013 17:04:23 +0000 (09:04 -0800)
committerBrian Behlendorf <behlendorf1@llnl.gov>
Fri, 11 Jan 2013 17:17:06 +0000 (09:17 -0800)
1557 assertion failed in userland taskq_destroy()

Reviewed by: Richard Lowe <richlowe@richlowe.net>
Reviewed by: George Wilson <gwilson@zfsmail.com>
Approved by: Eric Schrock <eric.schrock@delphix.com>

References:
  illumos/illumos-gate@aa846ad9bc4785806bb6263657698d5890afbc08
  illumos changeset: 13597:3eac1e8e0f4c
  https://www.illumos.org/issues/1557

Ported-by: Brian Behlendorf <behlendorf1@llnl.gov>
lib/libzpool/taskq.c

index 6143a91..803f7dc 100644 (file)
@@ -24,6 +24,7 @@
  */
 /*
  * Copyright 2011 Nexenta Systems, Inc. All rights reserved.
+ * Copyright 2012 Garrett D'Amore <garrett@damore.org>.  All rights reserved.
  */
 
 #include <sys/zfs_context.h>
@@ -140,9 +141,7 @@ taskq_dispatch(taskq_t *tq, task_func_t func, void *arg, uint_t tqflags)
        t->tqent_prev->tqent_next = t;
        t->tqent_func = func;
        t->tqent_arg = arg;
-
-       ASSERT(!(t->tqent_flags & TQENT_FLAG_PREALLOC));
-
+       t->tqent_flags = 0;
        cv_signal(&tq->tq_dispatch_cv);
        mutex_exit(&tq->tq_lock);
        return (1);