[PATCH] cfq-iosched: fix problem with barriers and max_depth == 1

CFQ will currently stall when using write barriers and the default
max_depth setting of 1, since we artificially need a depth of 2 when
pre-pending the first flush. So never deny the barrier request going to
the device.

This is a regression since 2.6.12, it was found in SUSE testing.

Signed-off-by: Jens Axboe <axboe@suse.de>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
Jens Axboe 2005-08-02 20:08:02 +02:00 committed by Linus Torvalds
parent f7c80c9f77
commit d7ed538a02

View file

@ -1281,6 +1281,7 @@ static struct request *cfq_next_request(request_queue_t *q)
*/
if (!cfq_crq_in_driver(crq) &&
!cfq_cfqq_idle_window(cfqq) &&
!blk_barrier_rq(rq) &&
cfqd->rq_in_driver >= cfqd->cfq_max_depth)
return NULL;