diff options
author | Neil Brown <neilb@suse.de> | 2008-04-29 17:13:53 +1000 |
---|---|---|
committer | Neil Brown <neilb@suse.de> | 2008-04-29 17:13:53 +1000 |
commit | 519561f73f7ba987affde8b174d2691bb098439d (patch) | |
tree | 2ce0ec3127821bded9355feeb9ccb1ea072e2f2d | |
parent | 5f98d3cbd9bdff77c59d7bb896af3732a938aa9c (diff) | |
download | mdadm-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-- | .gitignore | 0 | ||||
-rw-r--r-- | md.4 | 12 | ||||
-rw-r--r-- | mdadm.conf.5 | 12 | ||||
-rw-r--r-- | super1.c | 4 |
4 files changed, 15 insertions, 13 deletions
diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..e69de29 --- /dev/null +++ b/.gitignore @@ -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 @@ -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: |