summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--ANNOUNCE-2.6.30
-rw-r--r--ChangeLog3
-rw-r--r--crc32.c0
-rw-r--r--crc32.h0
-rw-r--r--super-ddf.c0
-rw-r--r--super1.c4
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
diff --git a/ChangeLog b/ChangeLog
index 10ddcf0..71d19f4 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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/crc32.c b/crc32.c
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/crc32.c
diff --git a/crc32.h b/crc32.h
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/crc32.h
diff --git a/super-ddf.c b/super-ddf.c
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/super-ddf.c
diff --git a/super1.c b/super1.c
index 0ff11fb..cf46a2f 100644
--- a/super1.c
+++ b/super1.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;