浏览代码

[BLOCK] elevator: run queue in elevator_switch

elevator_dispatch needs to run queue after forced dispatching;
otherwise, the queue might stall.

Signed-off-by: Tejun Heo <htejun@gmail.com>
Signed-off-by: Jens Axboe <axboe@suse.de>
Tejun Heo 20 年之前
父节点
当前提交
407df2aa29
共有 1 个文件被更改,包括 2 次插入0 次删除
  1. 2 0
      block/elevator.c

+ 2 - 0
block/elevator.c

@@ -696,6 +696,8 @@ static void elevator_switch(request_queue_t *q, struct elevator_type *new_e)
 		;
 
 	while (q->rq.elvpriv) {
+		blk_remove_plug(q);
+		q->request_fn(q);
 		spin_unlock_irq(q->queue_lock);
 		msleep(10);
 		spin_lock_irq(q->queue_lock);