Fix bugs related to raid10 and the new offset layout.
Need to mask of bits above the bottom 16 when calculating number of copies.
This commit is contained in:
parent
26a0b8fd7a
commit
702b557b1c
|
@ -13,6 +13,7 @@ Changes Prior to this release
|
|||
initramfs, but device doesn't yet exist in /dev.
|
||||
- When --assemble --scan is run, if all arrays that could be found
|
||||
have already been started, don't report an error.
|
||||
- Fix a couple of bugs related to raid10 and the new 'offset' layout.
|
||||
|
||||
Changes Prior to 2.5.4 release
|
||||
- When creating devices in /dev/md/ create matching symlinks
|
||||
|
|
2
Create.c
2
Create.c
|
@ -363,7 +363,7 @@ int Create(struct supertype *st, char *mddev, int mdfd,
|
|||
* which is array.size * raid_disks / ncopies;
|
||||
* .. but convert to sectors.
|
||||
*/
|
||||
int ncopies = (layout>>8) * (layout & 255);
|
||||
int ncopies = ((layout>>8) & 255) * (layout & 255);
|
||||
bitmapsize = (unsigned long long)size * raiddisks / ncopies * 2;
|
||||
/* printf("bms=%llu as=%d rd=%d nc=%d\n", bitmapsize, size, raiddisks, ncopies);*/
|
||||
} else
|
||||
|
|
2
util.c
2
util.c
|
@ -179,7 +179,7 @@ int enough(int level, int raid_disks, int layout,
|
|||
/* This is the tricky one - we need to check
|
||||
* which actual disks are present.
|
||||
*/
|
||||
copies = (layout&255)* (layout>>8);
|
||||
copies = (layout&255)* ((layout>>8) & 255);
|
||||
first=0;
|
||||
do {
|
||||
/* there must be one of the 'copies' form 'first' */
|
||||
|
|
Loading…
Reference in New Issue