Commit 2389d1ef authored by Oleg Nesterov's avatar Oleg Nesterov Committed by Jens Axboe

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: default avatarOleg Nesterov <oleg@tv-sign.ru>
Signed-off-by: default avatarJens Axboe <jens.axboe@oracle.com>
parent dbeeb816
...@@ -2068,9 +2068,10 @@ static void cfq_put_async_queues(struct cfq_data *cfqd) ...@@ -2068,9 +2068,10 @@ static void cfq_put_async_queues(struct cfq_data *cfqd)
cfq_put_queue(cfqd->async_cfqq[0][i]); cfq_put_queue(cfqd->async_cfqq[0][i]);
if (cfqd->async_cfqq[1][i]) if (cfqd->async_cfqq[1][i])
cfq_put_queue(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) static void cfq_exit_queue(elevator_t *e)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment