drivers/block/ll_rw_blk.c |   13 +------------
 include/linux/blkdev.h    |    1 -
 2 files changed, 1 insertion(+), 13 deletions(-)

diff -puN drivers/block/ll_rw_blk.c~unplug-use-tasklet drivers/block/ll_rw_blk.c
--- 25/drivers/block/ll_rw_blk.c~unplug-use-tasklet	2003-03-15 23:05:35.000000000 -0800
+++ 25-akpm/drivers/block/ll_rw_blk.c	2003-03-15 23:08:01.000000000 -0800
@@ -27,7 +27,6 @@
 #include <linux/completion.h>
 #include <linux/slab.h>
 
-static void blk_unplug_work(void *data);
 static void blk_unplug_timeout(unsigned long data);
 
 /*
@@ -210,8 +209,6 @@ void blk_queue_make_request(request_queu
 		q->unplug_delay = 1;
 
 	init_timer(&q->unplug_timer);
-	INIT_WORK(&q->unplug_work, blk_unplug_work, q);
-
 	q->unplug_timer.function = blk_unplug_timeout;
 	q->unplug_timer.data = (unsigned long)q;
 
@@ -1002,17 +999,10 @@ void generic_unplug_device(void *data)
 	spin_unlock_irq(q->queue_lock);
 }
 
-static void blk_unplug_work(void *data)
-{
-	request_queue_t *q = data;
-	q->unplug_fn(q);
-}
-
 static void blk_unplug_timeout(unsigned long data)
 {
 	request_queue_t *q = (request_queue_t *)data;
-
-	schedule_work(&q->unplug_work);
+	q->unplug_fn(q);
 }
 
 /**
@@ -1160,7 +1150,6 @@ void blk_cleanup_queue(request_queue_t *
 	count -= __blk_cleanup_queue(&q->rq[WRITE]);
 
 	del_timer_sync(&q->unplug_timer);
-	flush_scheduled_work();
 
 	if (count)
 		printk("blk_cleanup_queue: leaked requests (%d)\n", count);
diff -puN include/linux/blkdev.h~unplug-use-tasklet include/linux/blkdev.h
--- 25/include/linux/blkdev.h~unplug-use-tasklet	2003-03-15 23:07:54.000000000 -0800
+++ 25-akpm/include/linux/blkdev.h	2003-03-15 23:08:25.000000000 -0800
@@ -197,7 +197,6 @@ struct request_queue
 	struct timer_list	unplug_timer;
 	int			unplug_thresh;	/* After this many requests */
 	unsigned long		unplug_delay;	/* After this many jiffies */
-	struct work_struct	unplug_work;
 
 	struct backing_dev_info	backing_dev_info;
 

_