Using keventd for running request_fns is risky because keventd itself can
block on disk I/O.


 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	2003-05-28 03:10:53.000000000 -0700
+++ 25-akpm/drivers/block/ll_rw_blk.c	2003-05-28 03:10:53.000000000 -0700
@@ -1075,7 +1075,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);
 }
 
 /**
@@ -1204,7 +1204,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);
 

_