From: Brian Behlendorf Date: Mon, 14 Jun 2010 23:14:23 +0000 (-0700) Subject: Update fix-taskq to never sleep at interrupt time X-Git-Tag: zfs-0.5.0~38^2^2~1^2^2~28^2^2^2~1^2 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=49ad53c46fda1854a057f53bf972ba34402d19f3;p=zfs 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 --- diff --git a/module/zfs/zio.c b/module/zfs/zio.c index 88d80af4e..db9bb65fd 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