]> bbs.cooldavid.org Git - net-next-2.6.git/blobdiff - drivers/block/elevator.c
[BLOCK] elevator switch fixes/cleanup
[net-next-2.6.git] / drivers / block / elevator.c
index 272d939466211a73e0f97ef5f24b5a60e6d5586c..cf9bedbb761bcc9e647de77db2017efe646bad09 100644 (file)
@@ -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);