diff options
-rw-r--r-- | ANNOUNCE-2.6.3 | 0 | ||||
-rw-r--r-- | ChangeLog | 3 | ||||
-rw-r--r-- | crc32.c | 0 | ||||
-rw-r--r-- | crc32.h | 0 | ||||
-rw-r--r-- | super-ddf.c | 0 | ||||
-rw-r--r-- | super1.c | 4 |
6 files changed, 7 insertions, 0 deletions
diff --git a/ANNOUNCE-2.6.3 b/ANNOUNCE-2.6.3 new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/ANNOUNCE-2.6.3 @@ -1,5 +1,8 @@ Changes Prior to this release - allow --write-behind to be set for --grow. + - When adding new disk to an array, don't reserve so much bitmap + space that the disk cannot store the required data. (Needed when + 1.x array was created with older mdadm). Changes Prior to 2.6.2 release - --fail detached and --remove faulty can be used to fail and diff --git a/super-ddf.c b/super-ddf.c new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/super-ddf.c @@ -917,12 +917,16 @@ static int write_init_super1(struct supertype *st, void *sbv, break; case 1: sb->super_offset = __cpu_to_le64(0); + if (4*2 + bm_space + __le64_to_cpu(sb->size) > dsize) + bm_space = dsize - __le64_to_cpu(sb->size) - 4*2; sb->data_offset = __cpu_to_le64(bm_space + 4*2); sb->data_size = __cpu_to_le64(dsize - bm_space - 4*2); break; case 2: sb_offset = 4*2; sb->super_offset = __cpu_to_le64(4*2); + if (4*2 + 4*2 + bm_space + __le64_to_cpu(sb->size) > dsize) + bm_space = dsize - __le64_to_cpu(sb->size) - 4*2 - 4*2; sb->data_offset = __cpu_to_le64(4*2 + 4*2 + bm_space); sb->data_size = __cpu_to_le64(dsize - 4*2 - 4*2 - bm_space ); break; |