ソースを参照

[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>
Jens Axboe 20 年 前
コミット
d7ed538a02
1 ファイル変更1 行追加0 行削除
  1. 1 0
      drivers/block/cfq-iosched.c

+ 1 - 0
drivers/block/cfq-iosched.c

@@ -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;