Neil Brown: Fix possible bug with bitmap space allocation with v1. 0 metadata

Martin F. Krafft madduck at alioth.debian.org
Wed Jun 25 15:42:26 UTC 2008


Module: mdadm
Branch: build
Commit: 519561f73f7ba987affde8b174d2691bb098439d
URL:    http://git.debian.org/?p=pkg-mdadm/mdadm.git;a=commit;h=519561f73f7ba987affde8b174d2691bb098439d

Author: Neil Brown <neilb at suse.de>
Date:   Tue Apr 29 17:13:53 2008 +1000

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.

---

 md.4         |   12 ++++++------
 mdadm.conf.5 |   12 ++++++------
 super1.c     |    4 +++-
 3 files changed, 15 insertions(+), 13 deletions(-)

diff --git a/.gitignore b/.gitignore
new file mode 100644
index 0000000..e69de29
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:




More information about the pkg-mdadm-commits mailing list