summaryrefslogtreecommitdiff
path: root/drivers/block/elevator.c
diff options
context:
space:
mode:
authorJens Axboe <axboe@suse.de>2005-10-28 08:30:39 +0200
committerJens Axboe <axboe@nelson.home.kernel.dk>2005-10-28 08:48:23 +0200
commit64521d1a3ba7cc7fe4ab5640da83d88144f05340 (patch)
tree566f61ed9bbdc1c6ad245cb186fdd8c810a58f25 /drivers/block/elevator.c
parentcb98fc8bb9c141009e2bda99c0db39d387e142cf (diff)
downloadlwn-64521d1a3ba7cc7fe4ab5640da83d88144f05340.tar.gz
lwn-64521d1a3ba7cc7fe4ab5640da83d88144f05340.zip
[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>
Diffstat (limited to 'drivers/block/elevator.c')
-rw-r--r--drivers/block/elevator.c8
1 files changed, 4 insertions, 4 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 @@ fail_register:
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);