From: Jens Axboe <axboe@suse.de>

Just drops the unplug_delay debug hunk (going from 3ms -> 1sec), and kills
the unconditional ->unplug_fn call (this halved cpu usage in the dm test).


---

 25-akpm/drivers/block/ll_rw_blk.c |   11 ++---------
 1 files changed, 2 insertions(+), 9 deletions(-)

diff -puN drivers/block/ll_rw_blk.c~per-backing_dev-unplugging-unplug_delay drivers/block/ll_rw_blk.c
--- 25/drivers/block/ll_rw_blk.c~per-backing_dev-unplugging-unplug_delay	2004-04-03 15:21:01.459062384 -0800
+++ 25-akpm/drivers/block/ll_rw_blk.c	2004-04-03 15:21:01.466061320 -0800
@@ -231,13 +231,9 @@ void blk_queue_make_request(request_queu
 	blk_queue_dma_alignment(q, 511);
 
 	q->unplug_thresh = 4;		/* hmm */
-#if 0
 	q->unplug_delay = (3 * HZ) / 1000;	/* 3 milliseconds */
 	if (q->unplug_delay == 0)
 		q->unplug_delay = 1;
-#else
-	q->unplug_delay = HZ;
-#endif
 
 	INIT_WORK(&q->unplug_work, blk_unplug_work, q);
 
@@ -1134,11 +1130,8 @@ static inline void __generic_unplug_devi
 	if (test_bit(QUEUE_FLAG_STOPPED, &q->queue_flags))
 		return;
 
-	/*
-	 * always call down, since we can race now with setting the plugged
-	 * bit outside of the queue lock
-	 */
-	blk_remove_plug(q);
+	if (!blk_remove_plug(q))
+		return;
 
 	/*
 	 * was plugged, fire request_fn if queue has stuff to do

_