The spa_deadman() and spa_sync() functions can both be run in the
spa_sync context and therefore should use TQ_PUSHPAGE instead of
TQ_SLEEP.
Signed-off-by: Brian Behlendorf <behlendorf1@llnl.gov>
Closes #1734
Closes #1749
spa->spa_sync_starttime = gethrtime();
taskq_cancel_id(system_taskq, spa->spa_deadman_tqid);
spa->spa_deadman_tqid = taskq_dispatch_delay(system_taskq,
- spa_deadman, spa, TQ_SLEEP, ddi_get_lbolt() +
+ spa_deadman, spa, TQ_PUSHPAGE, ddi_get_lbolt() +
NSEC_TO_TICK(spa->spa_deadman_synctime));
/*
vdev_deadman(spa->spa_root_vdev);
spa->spa_deadman_tqid = taskq_dispatch_delay(system_taskq,
- spa_deadman, spa, TQ_SLEEP, ddi_get_lbolt() +
+ spa_deadman, spa, TQ_PUSHPAGE, ddi_get_lbolt() +
NSEC_TO_TICK(spa->spa_deadman_synctime));
}