[PATCH] cfq-iosched: fix problem with barriers and max_depth == 1
authorJens Axboe <axboe@suse.de>
Tue, 2 Aug 2005 18:08:02 +0000 (20:08 +0200)
committerLinus Torvalds <torvalds@g5.osdl.org>
Tue, 2 Aug 2005 18:19:18 +0000 (11:19 -0700)
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>
drivers/block/cfq-iosched.c

index de5746e38af935a01c45a866ae7598d24108a6ac..2435a7c99b2b6cd20300a78b15eb35b54e786eee 100644 (file)
@@ -1281,6 +1281,7 @@ dispatch:
                         */
                        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;