aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/block/elevator.c
diff options
context:
space:
mode:
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)
671 */ 671 */
672 spin_lock_irq(q->queue_lock); 672 spin_lock_irq(q->queue_lock);
673 673
674 set_bit(QUEUE_FLAG_BYPASS, &q->queue_flags); 674 set_bit(QUEUE_FLAG_ELVSWITCH, &q->queue_flags);
675 675
676 while (q->elevator->ops->elevator_dispatch_fn(q, 1)) 676 while (q->elevator->ops->elevator_dispatch_fn(q, 1))
677 ; 677 ;
678 678
679 while (q->rq.elvpriv) { 679 while (q->rq.elvpriv) {
680 spin_unlock_irq(q->queue_lock); 680 spin_unlock_irq(q->queue_lock);
681 msleep(100); 681 msleep(10);
682 spin_lock_irq(q->queue_lock); 682 spin_lock_irq(q->queue_lock);
683 } 683 }
684 684
@@ -703,7 +703,7 @@ static void elevator_switch(request_queue_t *q, struct elevator_type *new_e)
703 * finally exit old elevator and turn off BYPASS. 703 * finally exit old elevator and turn off BYPASS.
704 */ 704 */
705 elevator_exit(old_elevator); 705 elevator_exit(old_elevator);
706 clear_bit(QUEUE_FLAG_BYPASS, &q->queue_flags); 706 clear_bit(QUEUE_FLAG_ELVSWITCH, &q->queue_flags);
707 return; 707 return;
708 708
709fail_register: 709fail_register:
@@ -716,7 +716,7 @@ fail_register:
716fail: 716fail:
717 q->elevator = old_elevator; 717 q->elevator = old_elevator;
718 elv_register_queue(q); 718 elv_register_queue(q);
719 clear_bit(QUEUE_FLAG_BYPASS, &q->queue_flags); 719 clear_bit(QUEUE_FLAG_ELVSWITCH, &q->queue_flags);
720 kfree(e); 720 kfree(e);
721error: 721error:
722 elevator_put(new_e); 722 elevator_put(new_e);