summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNeil Brown <neilb@suse.de>2008-04-29 17:13:53 +1000
committerNeil Brown <neilb@suse.de>2008-04-29 17:13:53 +1000
commit519561f73f7ba987affde8b174d2691bb098439d (patch)
tree2ce0ec3127821bded9355feeb9ccb1ea072e2f2d
parent5f98d3cbd9bdff77c59d7bb896af3732a938aa9c (diff)
downloadmdadm-519561f73f7ba987affde8b174d2691bb098439d.tar.gz
mdadm-519561f73f7ba987affde8b174d2691bb098439d.tar.xz
mdadm-519561f73f7ba987affde8b174d2691bb098439d.zip
Fix possible bug with bitmap space allocation with v1.0 metadata
When adding a device to an array, make sure we don't reserve so much space for the bitmap that there isn't room for the data.
-rw-r--r--.gitignore0
-rw-r--r--md.412
-rw-r--r--mdadm.conf.512
-rw-r--r--super1.c4
4 files changed, 15 insertions, 13 deletions
diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/.gitignore
diff --git a/md.4 b/md.4
index db39aba..fb7267f 100644
--- a/md.4
+++ b/md.4
@@ -1,9 +1,9 @@
-''' Copyright Neil Brown and others.
-''' This program is free software; you can redistribute it and/or modify
-''' it under the terms of the GNU General Public License as published by
-''' the Free Software Foundation; either version 2 of the License, or
-''' (at your option) any later version.
-''' See file COPYING in distribution for details.
+.\" Copyright Neil Brown and others.
+.\" This program is free software; you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation; either version 2 of the License, or
+.\" (at your option) any later version.
+.\" See file COPYING in distribution for details.
.TH MD 4
.SH NAME
md \- Multiple Device driver aka Linux Software RAID
diff --git a/mdadm.conf.5 b/mdadm.conf.5
index 4807055..aadfb23 100644
--- a/mdadm.conf.5
+++ b/mdadm.conf.5
@@ -1,9 +1,9 @@
-''' Copyright Neil Brown and others.
-''' This program is free software; you can redistribute it and/or modify
-''' it under the terms of the GNU General Public License as published by
-''' the Free Software Foundation; either version 2 of the License, or
-''' (at your option) any later version.
-''' See file COPYING in distribution for details.
+.\" Copyright Neil Brown and others.
+.\" This program is free software; you can redistribute it and/or modify
+.\" it under the terms of the GNU General Public License as published by
+.\" the Free Software Foundation; either version 2 of the License, or
+.\" (at your option) any later version.
+.\" See file COPYING in distribution for details.
.TH MDADM.CONF 5
.SH NAME
mdadm.conf \- configuration for management of Software RAID with mdadm
diff --git a/super1.c b/super1.c
index 887db10..7ea6958 100644
--- a/super1.c
+++ b/super1.c
@@ -905,7 +905,7 @@ static int write_init_super1(struct supertype *st,
* for a bitmap.
*/
array_size = __le64_to_cpu(sb->size);
- /* work out how much space we left of a bitmap */
+ /* work out how much space we left for a bitmap */
bm_space = choose_bm_space(array_size);
switch(st->minor_version) {
@@ -915,6 +915,8 @@ static int write_init_super1(struct supertype *st,
sb_offset &= ~(4*2-1);
sb->super_offset = __cpu_to_le64(sb_offset);
sb->data_offset = __cpu_to_le64(0);
+ if (sb_offset - bm_space < array_size)
+ bm_space = sb_offset - array_size;
sb->data_size = __cpu_to_le64(sb_offset - bm_space);
break;
case 1: