summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ANNOUNCE-3.2.175
-rw-r--r--Incremental.c2
-rw-r--r--ReadMe.c2
-rwxr-xr-xinventory3
-rw-r--r--mdadm.8.in2
-rw-r--r--mdadm.spec2
-rw-r--r--mdassemble.82
-rw-r--r--mdmon.82
-rw-r--r--super-intel.c5
9 files changed, 86 insertions, 9 deletions
diff --git a/ANNOUNCE-3.2.1 b/ANNOUNCE-3.2.1
new file mode 100644
index 00000000..0e7826ca
--- /dev/null
+++ b/ANNOUNCE-3.2.1
@@ -0,0 +1,75 @@
+
+
+I am pleased to announce the availability of
+ mdadm version 3.2.1
+
+It is available at the usual places:
+ countrycode=xx.
+ http://www.${countrycode}kernel.org/pub/linux/utils/raid/mdadm/
+and via git at
+ git://neil.brown.name/mdadm
+ http://neil.brown.name/git/mdadm
+
+Many of the changes in this release are of internal interest only,
+restructuring and refactoring code and so forth.
+
+Most of the bugs found and fixed during development for 3.2.1 have been
+back-ported for the recently-release 3.1.5 so this release primarily
+provides a few new features over 3.1.5.
+
+They include:
+ - policy framework
+ Policy can be expressed for moving spare devices between arrays, and
+ for how to handle hot-plugged devices. This policy can be different
+ for devices plugged in to different controllers etc.
+ This, for example, allows a configuration where when a device is plugged
+ in it is immediately included in an md array as a hot spare and
+ possibly starts recovery immediately if an array is degraded.
+
+ - some understanding of mbr and gpt paritition tables
+ This is primarly to support the new hot-plug support. If a
+ device is plugged in and policy suggests it should have a partition table,
+ the partition table will be copied from a suitably similar device, and
+ then the partitions will hot-plug and can then be added to md arrays.
+
+ - "--incremental --remove" can remember where a device was removed from
+ so if a device gets plugged back in the same place, special policy applies
+ to it, allowing it to be included in an array even if a general hotplug
+ will not be included.
+
+ - enhanced reshape options, including growing a RAID0 by converting to RAID4,
+ restriping, and converting back. Also convertions between RAID0 and
+ RAID10 and between RAID1 and RAID10 are possible (with a suitably recent
+ kernel).
+
+ - spare migration for IMSM arrays.
+ Spare migration can now work across 'containers' using non-native metadata
+ and specifically Intel's IMSM arrays support spare migrations.
+
+ - OLCE and level migration for Intel IMSM arrays.
+ OnLine Capacity Expansion and level migration (e.g. RAID0 -> RAID5) is
+ supported for Intel Matrix Storage Manager arrays.
+ This support is currently 'experimental' for technical reasons. It can
+ be enabled with "export MDADM_EXPERIMENTAL=1"
+
+ - avoid including wayward devices
+ If you split a RAID1, mount the two halves as two separate degraded RAID1s,
+ and then later bring the two back together, it is possible that the md
+ metadata won't properly show that one must over-ride the other.
+ mdadm now does extra checking to detect this possibilty and avoid
+ potentially corrupting data.
+
+ - remove any possible confusion between similar options.
+ e.g. --brief and --bitmap were mapped to 'b' and mdadm wouldn't
+ notice if one was used where the other was expected.
+
+ - allow K,M,G suffixes on chunk sizes
+
+
+While mdadm-3.2.1 is considered to be reasonably stable, you should
+only use it if you want to try out the new features, or if you
+generally like to be on the bleeding edge. If the new features are not
+important to you, then 3.1.5 is probably the appropriate version to be using
+until 3.2.2 comes out.
+
+NeilBrown 28th March 2011
diff --git a/Incremental.c b/Incremental.c
index 72180607..14184da0 100644
--- a/Incremental.c
+++ b/Incremental.c
@@ -438,7 +438,7 @@ int Incremental(char *devname, int verbose, int runstop,
/* 7/ Is there enough devices to possibly start the array? */
/* 7a/ if not, finish with success. */
if (info.array.level == LEVEL_CONTAINER) {
- int devnum;
+ int devnum = devnum; /* defined and used iff ->external */
/* Try to assemble within the container */
map_unlock(&map);
sysfs_uevent(&info, "change");
diff --git a/ReadMe.c b/ReadMe.c
index 90cab871..dee3d0c2 100644
--- a/ReadMe.c
+++ b/ReadMe.c
@@ -24,7 +24,7 @@
#include "mdadm.h"
-char Version[] = Name " - v3.2 DEVELOPER_ONLY - 1st February 2011 (USE WITH CARE)\n";
+char Version[] = Name " - v3.2.1 - 28th March 2011\n";
/*
* File: ReadMe.c
diff --git a/inventory b/inventory
index d630f7a4..d93ef904 100755
--- a/inventory
+++ b/inventory
@@ -10,6 +10,7 @@ ANNOUNCE-3.1.3
ANNOUNCE-3.1.4
ANNOUNCE-3.1.5
ANNOUNCE-3.2
+ANNOUNCE-3.2.1
Assemble.c
bitmap.c
bitmap.h
@@ -75,6 +76,7 @@ probe_roms.h
pwgr.c
Query.c
raid5extend.c
+raid6check.c
ReadMe.c
README.initramfs
restripe.c
@@ -179,6 +181,7 @@ tests/18imsm-1d-takeover-r0_1d
tests/18imsm-1d-takeover-r1_2d
tests/18imsm-r0_2d-takeover-r10_4d
tests/18imsm-r10_4d-takeover-r0_2d
+tests/18imsm-r1_2d-takeover-r0_1d
tests/check
tests/env-imsm-template
tests/imsm-grow-template
diff --git a/mdadm.8.in b/mdadm.8.in
index 982991d1..d6d8ffaf 100644
--- a/mdadm.8.in
+++ b/mdadm.8.in
@@ -5,7 +5,7 @@
.\" 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 8 "" v3.2
+.TH MDADM 8 "" v3.2.1
.SH NAME
mdadm \- manage MD devices
.I aka
diff --git a/mdadm.spec b/mdadm.spec
index e96086dd..446c84ee 100644
--- a/mdadm.spec
+++ b/mdadm.spec
@@ -1,6 +1,6 @@
Summary: mdadm is used for controlling Linux md devices (aka RAID arrays)
Name: mdadm
-Version: 3.2
+Version: 3.2.1
Release: 1
Source: http://www.kernel.org/pub/linux/utils/raid/mdadm/mdadm-%{version}.tgz
URL: http://neil.brown.name/blog/mdadm
diff --git a/mdassemble.8 b/mdassemble.8
index 5c442ee3..5610e850 100644
--- a/mdassemble.8
+++ b/mdassemble.8
@@ -1,5 +1,5 @@
.\" -*- nroff -*-
-.TH MDASSEMBLE 8 "" v3.2
+.TH MDASSEMBLE 8 "" v3.2.1
.SH NAME
mdassemble \- assemble MD devices
.I aka
diff --git a/mdmon.8 b/mdmon.8
index efa30898..5147b867 100644
--- a/mdmon.8
+++ b/mdmon.8
@@ -1,5 +1,5 @@
.\" See file COPYING in distribution for details.
-.TH MDMON 8 "" v3.2-devel
+.TH MDMON 8 "" v3.2.1
.SH NAME
mdmon \- monitor MD external metadata arrays
diff --git a/super-intel.c b/super-intel.c
index 5f5f0d99..62ccd150 100644
--- a/super-intel.c
+++ b/super-intel.c
@@ -383,7 +383,6 @@ const char *get_sys_dev_type(enum sys_dev_type type)
return _sys_dev_type[type];
}
-#ifndef MDASSEMBLE
static struct intel_hba * alloc_intel_hba(struct sys_dev *device)
{
struct intel_hba *result = malloc(sizeof(*result));
@@ -407,7 +406,6 @@ static struct intel_hba * find_intel_hba(struct intel_hba *hba, struct sys_dev *
return result;
}
-
static int attach_hba_to_super(struct intel_super *super, struct sys_dev *device)
{
struct intel_hba *hba;
@@ -473,7 +471,6 @@ static struct sys_dev* find_disk_attached_hba(int fd, const char *devname)
return NULL;
}
-#endif /* MDASSEMBLE */
static int find_intel_hba_capability(int fd, struct intel_super *super,
@@ -4962,6 +4959,7 @@ static struct mdinfo *container_content_imsm(struct supertype *st, char *subarra
*/
chunk = __le16_to_cpu(map->blocks_per_strip) >> 1;
+#ifndef MDASSEMBLE
if (!validate_geometry_imsm_orom(super,
get_imsm_raid_level(map), /* RAID level */
imsm_level_to_layout(get_imsm_raid_level(map)),
@@ -4972,6 +4970,7 @@ static struct mdinfo *container_content_imsm(struct supertype *st, char *subarra
"Cannot proceed with the action(s).\n");
continue;
}
+#endif /* MDASSEMBLE */
this = malloc(sizeof(*this));
if (!this) {
fprintf(stderr, Name ": failed to allocate %zu bytes\n",