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-04-01 02:33:37.000000000 -0800
+++ 25-akpm/drivers/block/ll_rw_blk.c	2003-04-01 02:33:37.000000000 -0800
@@ -1019,7 +1019,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);
 }
 
 /**
@@ -1167,7 +1167,7 @@ void blk_cleanup_queue(request_queue_t *
 	count -= __blk_cleanup_queue(&q->rq[WRITE]);
 
 	del_timer_sync(&q->unplug_timer);
-	flush_scheduled_work();
+	kblockd_flush();
 
 	if (count)
 		printk("blk_cleanup_queue: leaked requests (%d)\n", count);

_