From 6914386b8590fed6be580170481b1cf9016a59b6 Mon Sep 17 00:00:00 2001 From: Brian Behlendorf Date: Mon, 28 Jun 2010 10:11:12 -0700 Subject: [PATCH] Never sleep under taskq_dispatch() There are cases where under Linux it is not safe to sleep in taskq_dispatch(). Rather than adding Linux specific code to detect these cases I opted to keep it simple and just never allow a sleep here. The impact of this should be minimal. --- module/zfs/zio.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/module/zfs/zio.c b/module/zfs/zio.c index db9bb65fdd..341f00306a 100644 --- a/module/zfs/zio.c +++ b/module/zfs/zio.c @@ -1048,10 +1048,7 @@ zio_taskq_dispatch(zio_t *zio, enum zio_taskq_type q, boolean_t cutinline) { spa_t *spa = zio->io_spa; zio_type_t t = zio->io_type; - int flags; - - flags = (cutinline ? TQ_FRONT : 0); - flags |= ((q == ZIO_TASKQ_INTERRUPT) ? TQ_NOSLEEP : TQ_SLEEP); + int flags = TQ_NOSLEEP | (cutinline ? TQ_FRONT : 0); /* * If we're a config writer or a probe, the normal issue and