1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101
|
@@ -1453,90 +1436,6 @@
return 1;
}
-#undef OLD_LEVEL
-
-static int device_size_calculation(mddev_t * mddev)
-{
- int data_disks = 0;
- unsigned int readahead;
- struct list_head *tmp;
- mdk_rdev_t *rdev;
-
- /*
- * Do device size calculation. Bail out if too small.
- * (we have to do this after having validated chunk_size,
- * because device size has to be modulo chunk_size)
- */
-
- ITERATE_RDEV(mddev,rdev,tmp) {
- if (rdev->faulty)
- continue;
- if (rdev->size < mddev->chunk_size / 1024) {
- printk(KERN_WARNING
- "md: Dev %s smaller than chunk_size:"
- " %lluk < %dk\n",
- bdev_partition_name(rdev->bdev),
- (unsigned long long)rdev->size,
- mddev->chunk_size / 1024);
- return -EINVAL;
- }
- }
-
- switch (mddev->level) {
- case LEVEL_MULTIPATH:
- data_disks = 1;
- break;
- case -3:
- data_disks = 1;
- break;
- case -2:
- data_disks = 1;
- break;
- case LEVEL_LINEAR:
- zoned_raid_size(mddev);
- data_disks = 1;
- break;
- case 0:
- zoned_raid_size(mddev);
- data_disks = mddev->raid_disks;
- break;
- case 1:
- data_disks = 1;
- break;
- case 4:
- case 5:
- data_disks = mddev->raid_disks-1;
- break;
- default:
- printk(KERN_ERR "md: md%d: unsupported raid level %d\n",
- mdidx(mddev), mddev->level);
- goto abort;
- }
- if (!md_size[mdidx(mddev)])
- md_size[mdidx(mddev)] = mddev->size * data_disks;
-
- readahead = (VM_MAX_READAHEAD * 1024) / PAGE_SIZE;
- if (!mddev->level || (mddev->level == 4) || (mddev->level == 5)) {
- readahead = (mddev->chunk_size>>PAGE_SHIFT) * 4 * data_disks;
- if (readahead < data_disks * (MAX_SECTORS>>(PAGE_SHIFT-9))*2)
- readahead = data_disks * (MAX_SECTORS>>(PAGE_SHIFT-9))*2;
- } else {
- // (no multipath branch - it uses the default setting)
- if (mddev->level == -3)
- readahead = 0;
- }
-
- printk(KERN_INFO "md%d: max total readahead window set to %ldk\n",
- mdidx(mddev), readahead*(PAGE_SIZE/1024));
-
- printk(KERN_INFO
- "md%d: %d data-disks, max readahead per data-disk: %ldk\n",
- mdidx(mddev), data_disks, readahead/data_disks*(PAGE_SIZE/1024));
- return 0;
-abort:
- return 1;
-}
-
static struct gendisk *md_probe(dev_t dev, int *part, void *data)
{
static DECLARE_MUTEX(disks_sem);
@@ -1664,9 +1571,6 @@
}
}
- if (device_size_calculation(mddev))
- return -EINVAL;
-
/*
* Drop all container device buffers, from now on
* the only valid external interface is through the md
|