diff options
author | Jens Axboe <axboe@suse.de> | 2005-08-02 14:08:02 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2005-08-02 14:19:18 -0400 |
commit | d7ed538a02c219119adb20f1dccbf0f8015e53f3 (patch) | |
tree | d716ae7dc2e986b36c8180333839312dc0eab7e2 /drivers | |
parent | f7c80c9f77b0e8a59a19506fd3caf323408a5166 (diff) |
[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>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/block/cfq-iosched.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/block/cfq-iosched.c b/drivers/block/cfq-iosched.c index de5746e38af9..2435a7c99b2b 100644 --- a/drivers/block/cfq-iosched.c +++ b/drivers/block/cfq-iosched.c | |||
@@ -1281,6 +1281,7 @@ dispatch: | |||
1281 | */ | 1281 | */ |
1282 | if (!cfq_crq_in_driver(crq) && | 1282 | if (!cfq_crq_in_driver(crq) && |
1283 | !cfq_cfqq_idle_window(cfqq) && | 1283 | !cfq_cfqq_idle_window(cfqq) && |
1284 | !blk_barrier_rq(rq) && | ||
1284 | cfqd->rq_in_driver >= cfqd->cfq_max_depth) | 1285 | cfqd->rq_in_driver >= cfqd->cfq_max_depth) |
1285 | return NULL; | 1286 | return NULL; |
1286 | 1287 | ||