aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2006-03-27 04:18:02 -0500
committerLinus Torvalds <torvalds@g5.osdl.org>2006-03-27 11:45:00 -0500
commit89e5c8b5b85d6d46e8a28cdfa076313ae691d35c (patch)
tree61ef0df8f33900f926d6ebd81f295063cb0601b3
parenta22c96c737a9cefbe8d6e991c0032ad6db825a67 (diff)
[PATCH] md: Make sure QUEUE_FLAG_CLUSTER is set properly for md.
This flag should be set for a virtual device iff it is set for all underlying devices. Signed-off-by: Neil Brown <neilb@suse.de> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
-rw-r--r--block/ll_rw_blk.c2
-rw-r--r--drivers/md/md.c1
2 files changed, 3 insertions, 0 deletions
diff --git a/block/ll_rw_blk.c b/block/ll_rw_blk.c
index 062067fa7ead..a2e333ad0b64 100644
--- a/block/ll_rw_blk.c
+++ b/block/ll_rw_blk.c
@@ -785,6 +785,8 @@ void blk_queue_stack_limits(request_queue_t *t, request_queue_t *b)
785 t->max_hw_segments = min(t->max_hw_segments,b->max_hw_segments); 785 t->max_hw_segments = min(t->max_hw_segments,b->max_hw_segments);
786 t->max_segment_size = min(t->max_segment_size,b->max_segment_size); 786 t->max_segment_size = min(t->max_segment_size,b->max_segment_size);
787 t->hardsect_size = max(t->hardsect_size,b->hardsect_size); 787 t->hardsect_size = max(t->hardsect_size,b->hardsect_size);
788 if (!test_bit(QUEUE_FLAG_CLUSTER, &b->queue_flags))
789 clear_bit(QUEUE_FLAG_CLUSTER, &t->queue_flags);
788} 790}
789 791
790EXPORT_SYMBOL(blk_queue_stack_limits); 792EXPORT_SYMBOL(blk_queue_stack_limits);
diff --git a/drivers/md/md.c b/drivers/md/md.c
index bde3e9682250..3254ff1a5cc9 100644
--- a/drivers/md/md.c
+++ b/drivers/md/md.c
@@ -266,6 +266,7 @@ static mddev_t * mddev_find(dev_t unit)
266 kfree(new); 266 kfree(new);
267 return NULL; 267 return NULL;
268 } 268 }
269 set_bit(QUEUE_FLAG_CLUSTER, &new->queue->queue_flags);
269 270
270 blk_queue_make_request(new->queue, md_fail_request); 271 blk_queue_make_request(new->queue, md_fail_request);
271 272