Commit f556ef00 authored by Neil Brown's avatar Neil Brown Committed by Linus Torvalds

[PATCH] Set max_sectors for raid0 only, not for all raid levels.

raid1 and multipath have not concept of a chunksize, so basing
max_sectors on it is obviously wrong.

Similary 'linear' has a very different concept of chunksize and
max_sectors doesn't apply.

raid5 does have relevant chunk_size concept, but it has code to
effectively handle any chunksize.

So we only need to set max_sectors based on chunk_size in raid0.
parent cff9b7dd
...@@ -1610,12 +1610,6 @@ static int do_md_run(mddev_t * mddev) ...@@ -1610,12 +1610,6 @@ static int do_md_run(mddev_t * mddev)
spin_unlock(&pers_lock); spin_unlock(&pers_lock);
blk_queue_make_request(mddev->queue, mddev->pers->make_request); blk_queue_make_request(mddev->queue, mddev->pers->make_request);
printk("%s: setting max_sectors to %d, segment boundary to %d\n",
disk->disk_name,
chunk_size >> 9,
(chunk_size>>1)-1);
blk_queue_max_sectors(mddev->queue, chunk_size >> 9);
blk_queue_segment_boundary(mddev->queue, (chunk_size>>1) - 1);
mddev->queue->queuedata = mddev; mddev->queue->queuedata = mddev;
err = mddev->pers->run(mddev); err = mddev->pers->run(mddev);
......
...@@ -231,6 +231,13 @@ static int raid0_run (mddev_t *mddev) ...@@ -231,6 +231,13 @@ static int raid0_run (mddev_t *mddev)
mdk_rdev_t *rdev; mdk_rdev_t *rdev;
struct list_head *tmp; struct list_head *tmp;
printk("md%d: setting max_sectors to %d, segment boundary to %d\n",
mdidx(mddev),
mddev->chunk_size >> 9,
(mddev->chunk_size>>1)-1);
blk_queue_max_sectors(mddev->queue, mddev->chunk_size >> 9);
blk_queue_segment_boundary(mddev->queue, (mddev->chunk_size>>1) - 1);
conf = kmalloc(sizeof (raid0_conf_t), GFP_KERNEL); conf = kmalloc(sizeof (raid0_conf_t), GFP_KERNEL);
if (!conf) if (!conf)
goto out; goto out;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment