cfq: fix IOPRIO_CLASS_IDLE accounting
Spotted by Nick <gentuu@gmail.com>, hopefully can explain the second trace in http://bugzilla.kernel.org/show_bug.cgi?id=9180. If ->async_idle_cfqq != NULL cfq_put_async_queues() puts it IOPRIO_BE_NR times in a loop. Fix this. Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru> Signed-off-by: Jens Axboe <jens.axboe@oracle.com>
This commit is contained in:
Родитель
dbeeb816e8
Коммит
2389d1ef17
|
@ -2068,9 +2068,10 @@ static void cfq_put_async_queues(struct cfq_data *cfqd)
|
|||
cfq_put_queue(cfqd->async_cfqq[0][i]);
|
||||
if (cfqd->async_cfqq[1][i])
|
||||
cfq_put_queue(cfqd->async_cfqq[1][i]);
|
||||
if (cfqd->async_idle_cfqq)
|
||||
cfq_put_queue(cfqd->async_idle_cfqq);
|
||||
}
|
||||
|
||||
if (cfqd->async_idle_cfqq)
|
||||
cfq_put_queue(cfqd->async_idle_cfqq);
|
||||
}
|
||||
|
||||
static void cfq_exit_queue(elevator_t *e)
|
||||
|
|
Загрузка…
Ссылка в новой задаче