]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
Release 3.2.1 mdadm-3.2.1
authorNeilBrown <neilb@suse.de>
Mon, 28 Mar 2011 02:30:29 +0000 (13:30 +1100)
committerNeilBrown <neilb@suse.de>
Mon, 28 Mar 2011 02:30:29 +0000 (13:30 +1100)
Signed-off-by: NeilBrown <neilb@suse.de>
ANNOUNCE-3.2.1 [new file with mode: 0644]
Incremental.c
ReadMe.c
inventory
mdadm.8.in
mdadm.spec
mdassemble.8
mdmon.8
super-intel.c

diff --git a/ANNOUNCE-3.2.1 b/ANNOUNCE-3.2.1
new file mode 100644 (file)
index 0000000..0e7826c
--- /dev/null
@@ -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
index 721806075b344c6951283a7bb2b0c535db5da85f..14184da0291441cd3c3fc6ba8c5a1d904727bfa0 100644 (file)
@@ -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");
index 90cab8713058583299ef2a517e1f4b6e8e3ac8e3..dee3d0c2f11619765cdadeeb4b1023e91f8dec58 100644 (file)
--- 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
index d630f7a4284beb2168f89bf5d5faae4c82814cba..d93ef904d0fca732e11035bdd41d05bfc96fe74f 100755 (executable)
--- 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
index 982991d1a7f605adcd33d8dad412f33fef4a3aca..d6d8ffaff465f53b1f79b8228dc09db0574af710 100644 (file)
@@ -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
index e96086dd37517989fbb525fb3ba65757b84ecd28..446c84ee8aa1c5d92f1fe4d745cf48c628c77757 100644 (file)
@@ -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
index 5c442ee3c81277fa47f42b70aabd02561fc11db8..5610e850708e850b263a443441b57a96f4510c00 100644 (file)
@@ -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 efa30898635cf1889b3976543273b846f46b6d9e..5147b8672c783a64c46140d4b32293890b6214cd 100644 (file)
--- 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
 
index 5f5f0d99263e7eb864c4450b1fb465781a89f934..62ccd150db6e7e316e4d8d01ee5553ad7eb366cb 100644 (file)
@@ -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",