Using keventd for running request_fns is risky because keventd itself can block on disk I/O. 25-akpm/drivers/block/ll_rw_blk.c | 4 ++-- 1 files changed, 2 insertions(+), 2 deletions(-) diff -puN drivers/block/ll_rw_blk.c~unplug-use-kblockd drivers/block/ll_rw_blk.c --- 25/drivers/block/ll_rw_blk.c~unplug-use-kblockd Wed Apr 30 15:19:39 2003 +++ 25-akpm/drivers/block/ll_rw_blk.c Wed Apr 30 15:19:39 2003 @@ -1013,7 +1013,7 @@ static void blk_unplug_timeout(unsigned { request_queue_t *q = (request_queue_t *)data; - schedule_work(&q->unplug_work); + kblockd_schedule_work(&q->unplug_work); } /** @@ -1142,7 +1142,7 @@ void blk_cleanup_queue(request_queue_t * elevator_exit(q); del_timer_sync(&q->unplug_timer); - flush_scheduled_work(); + kblockd_flush(); mempool_destroy(rl->rq_pool); _