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.
This commit is contained in:
Brian Behlendorf 2010-06-28 10:11:12 -07:00
parent 49ad53c46f
commit 6914386b85
1 changed files with 1 additions and 4 deletions

View File

@ -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