From 64521d1a3ba7cc7fe4ab5640da83d88144f05340 Mon Sep 17 00:00:00 2001
From: Jens Axboe <axboe@suse.de>
Date: Fri, 28 Oct 2005 08:30:39 +0200
Subject: [PATCH] [BLOCK] elevator switch fixes/cleanup

- 100msec sleep is a little excessive, lots of requests can complete
  in that timeframe. Use 10msec instead.
- Rename QUEUE_FLAG_BYPASS to QUEUE_FLAG_ELVSWITCH to indicate what
  is going on.

Signed-off-by: Jens Axboe <axboe@suse.de>
---
 drivers/block/elevator.c  | 8 ++++----
 drivers/block/ll_rw_blk.c | 2 +-
 include/linux/blkdev.h    | 2 +-
 3 files changed, 6 insertions(+), 6 deletions(-)

diff --git a/drivers/block/elevator.c b/drivers/block/elevator.c
index 272d93946621..cf9bedbb761b 100644
--- a/drivers/block/elevator.c
+++ b/drivers/block/elevator.c
@@ -671,14 +671,14 @@ static void elevator_switch(request_queue_t *q, struct elevator_type *new_e)
 	 */
 	spin_lock_irq(q->queue_lock);
 
-	set_bit(QUEUE_FLAG_BYPASS, &q->queue_flags);
+	set_bit(QUEUE_FLAG_ELVSWITCH, &q->queue_flags);
 
 	while (q->elevator->ops->elevator_dispatch_fn(q, 1))
 		;
 
 	while (q->rq.elvpriv) {
 		spin_unlock_irq(q->queue_lock);
-		msleep(100);
+		msleep(10);
 		spin_lock_irq(q->queue_lock);
 	}
 
@@ -703,7 +703,7 @@ static void elevator_switch(request_queue_t *q, struct elevator_type *new_e)
 	 * finally exit old elevator and turn off BYPASS.
 	 */
 	elevator_exit(old_elevator);
-	clear_bit(QUEUE_FLAG_BYPASS, &q->queue_flags);
+	clear_bit(QUEUE_FLAG_ELVSWITCH, &q->queue_flags);
 	return;
 
 fail_register:
@@ -716,7 +716,7 @@ static void elevator_switch(request_queue_t *q, struct elevator_type *new_e)
 fail:
 	q->elevator = old_elevator;
 	elv_register_queue(q);
-	clear_bit(QUEUE_FLAG_BYPASS, &q->queue_flags);
+	clear_bit(QUEUE_FLAG_ELVSWITCH, &q->queue_flags);
 	kfree(e);
 error:
 	elevator_put(new_e);
diff --git a/drivers/block/ll_rw_blk.c b/drivers/block/ll_rw_blk.c
index f7c9931cb380..fc12d019b19d 100644
--- a/drivers/block/ll_rw_blk.c
+++ b/drivers/block/ll_rw_blk.c
@@ -1940,7 +1940,7 @@ static struct request *get_request(request_queue_t *q, int rw, struct bio *bio,
 	if (rl->count[rw] >= queue_congestion_on_threshold(q))
 		set_queue_congested(q, rw);
 
-	priv = !test_bit(QUEUE_FLAG_BYPASS, &q->queue_flags);
+	priv = !test_bit(QUEUE_FLAG_ELVSWITCH, &q->queue_flags);
 	if (priv)
 		rl->elvpriv++;
 
diff --git a/include/linux/blkdev.h b/include/linux/blkdev.h
index 6186d5e2110f..7d9d14d6d8f9 100644
--- a/include/linux/blkdev.h
+++ b/include/linux/blkdev.h
@@ -442,7 +442,7 @@ enum {
 #define QUEUE_FLAG_DEAD		5	/* queue being torn down */
 #define QUEUE_FLAG_REENTER	6	/* Re-entrancy avoidance */
 #define QUEUE_FLAG_PLUGGED	7	/* queue is plugged */
-#define QUEUE_FLAG_BYPASS	8	/* don't use elevator, just do FIFO */
+#define QUEUE_FLAG_ELVSWITCH	8	/* don't use elevator, just do FIFO */
 #define QUEUE_FLAG_FLUSH	9	/* doing barrier flush sequence */
 
 #define blk_queue_plugged(q)	test_bit(QUEUE_FLAG_PLUGGED, &(q)->queue_flags)
-- 
GitLab