From: NeilBrown This flag should be set for a virtual device iff it is set for all underlying devices. Signed-off-by: Neil Brown Signed-off-by: Andrew Morton --- block/ll_rw_blk.c | 2 ++ drivers/md/md.c | 1 + 2 files changed, 3 insertions(+) diff -puN block/ll_rw_blk.c~md-make-sure-queue_flag_cluster-is-set-properly-for-md block/ll_rw_blk.c --- devel/block/ll_rw_blk.c~md-make-sure-queue_flag_cluster-is-set-properly-for-md 2006-03-11 02:50:57.000000000 -0800 +++ devel-akpm/block/ll_rw_blk.c 2006-03-11 02:50:57.000000000 -0800 @@ -785,6 +785,8 @@ void blk_queue_stack_limits(request_queu t->max_hw_segments = min(t->max_hw_segments,b->max_hw_segments); t->max_segment_size = min(t->max_segment_size,b->max_segment_size); t->hardsect_size = max(t->hardsect_size,b->hardsect_size); + if (!test_bit(QUEUE_FLAG_CLUSTER, &b->queue_flags)) + clear_bit(QUEUE_FLAG_CLUSTER, &t->queue_flags); } EXPORT_SYMBOL(blk_queue_stack_limits); diff -puN drivers/md/md.c~md-make-sure-queue_flag_cluster-is-set-properly-for-md drivers/md/md.c --- devel/drivers/md/md.c~md-make-sure-queue_flag_cluster-is-set-properly-for-md 2006-03-11 02:50:57.000000000 -0800 +++ devel-akpm/drivers/md/md.c 2006-03-11 02:50:57.000000000 -0800 @@ -263,6 +263,7 @@ static mddev_t * mddev_find(dev_t unit) kfree(new); return NULL; } + set_bit(QUEUE_FLAG_CLUSTER, &new->queue->queue_flags); blk_queue_make_request(new->queue, md_fail_request); _