[PATCH] cfq-iosched: fix problem with barriers and max_depth == 1
Jens Axboe [Tue, 2 Aug 2005 18:08:02 +0000 (20:08 +0200)]
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 de5746e..2435a7c 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;