From 7b0bbd0f7181cdc45c034459decc5a14549c15ec Mon Sep 17 00:00:00 2001 From: NeilBrown Date: Mon, 28 Mar 2011 13:30:29 +1100 Subject: [PATCH] Release 3.2.1 Signed-off-by: NeilBrown --- ANNOUNCE-3.2.1 | 75 ++++++++++++++++++++++++++++++++++++++++++++++++++ Incremental.c | 2 +- ReadMe.c | 2 +- inventory | 3 ++ mdadm.8.in | 2 +- mdadm.spec | 2 +- mdassemble.8 | 2 +- mdmon.8 | 2 +- super-intel.c | 5 ++-- 9 files changed, 86 insertions(+), 9 deletions(-) create mode 100644 ANNOUNCE-3.2.1 diff --git a/ANNOUNCE-3.2.1 b/ANNOUNCE-3.2.1 new file mode 100644 index 0000000..0e7826c --- /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 7218060..14184da 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 90cab87..dee3d0c 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 d630f7a..d93ef90 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 982991d..d6d8ffa 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 e96086d..446c84e 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 5c442ee..5610e85 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 efa3089..5147b86 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 5f5f0d9..62ccd15 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",