From 49ad53c46fda1854a057f53bf972ba34402d19f3 Mon Sep 17 00:00:00 2001 From: Brian Behlendorf Date: Mon, 14 Jun 2010 16:14:23 -0700 Subject: [PATCH] Update fix-taskq to never sleep at interrupt time Updated fix to detect if we are in an interrupt and only sleep if it is safe to do some. I guess it must be safe to sleep under Solaris this must be handled in a sort interrupt handler there --- module/zfs/zio.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/module/zfs/zio.c b/module/zfs/zio.c index 88d80af4e9..db9bb65fdd 100644 --- a/module/zfs/zio.c +++ b/module/zfs/zio.c @@ -1048,7 +1048,10 @@ 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 = TQ_SLEEP | (cutinline ? TQ_FRONT : 0); + int flags; + + flags = (cutinline ? TQ_FRONT : 0); + flags |= ((q == ZIO_TASKQ_INTERRUPT) ? TQ_NOSLEEP : TQ_SLEEP); /* * If we're a config writer or a probe, the normal issue and