]> git.ipfire.org Git - thirdparty/mdadm.git/commitdiff
Release 2.6 mdadm-2.6
authorNeil Brown <neilb@suse.de>
Thu, 21 Dec 2006 06:24:38 +0000 (17:24 +1100)
committerNeil Brown <neilb@suse.de>
Thu, 21 Dec 2006 06:24:38 +0000 (17:24 +1100)
ANNOUNCE-2.6
ChangeLog
Incremental.c
Monitor.c
ReadMe.c
inventory
mdadm.8
mdadm.spec
mdassemble.8
super0.c

index e69de29bb2d1d6434b8b29ae775ad8c2e48c5391..cd3741db55692865bef88f137ef755189ed21388 100644 (file)
@@ -0,0 +1,76 @@
+Subject:  ANNOUNCE: mdadm 2.6 - A tool for managing Soft RAID under Linux
+
+I am pleased to announce the availability of
+   mdadm version 2.6
+
+It is available at the usual places:
+   http://www.cse.unsw.edu.au/~neilb/source/mdadm/
+and
+   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?p=mdadm
+
+mdadm is a tool for creating, managing and monitoring
+device arrays using the "md" driver in Linux, also
+known as Software RAID arrays.
+
+Release 2.6 adds assorted fixes and improvements and a new major mode.
+"Incremental Assembly"  via -I or --incremental can be used to
+assemble an array one device at a time.  The idea is that you get
+udev to run  "mdadm -Iq devicename" on each new block device that it
+finds.  Anything that is part of an array gets included in an array as
+appropriate.
+Two special notes:
+ 1/ This is very new code and is probably buggy.  It passes a few basic
+    tests, and helped me find some kernel bugs, but it is still fresh
+    and should not be considered 'stable'.  Please test and provide
+    feedback.
+ 2/ There is a bug in the linux kernel that makes incremental assembly
+    not possible in general (you cannot safely remove a drive from an array
+    that has not yet been started. This is needed if an old device was
+    detected first).  If mdadm detects a kernel which might have the
+    bug, it rejects --incremental requests.
+    The bug will hopefully be fixed in 2.6.20 and this mdadm release
+    contains patches for 2.6.18, 2.6.18.6 and 2.6.19.  Apply the
+    appropriate patch to test --incremental.
+
+Changelog Entries:
+    -   Fixed UUID printing in "--detail --brief" for version1 metadata.
+    -   --update=resync did exactly the wrong thing for version1 metadata.
+       It caused a resync to not happen, rather than to happen.
+    -   Allow --assemble --force to mark a raid6 clean when it has two
+       missing devices (which is needed else if won't assemble.
+       Without this fix it would only assemble if one or zero
+       missing devices.
+    -   Support --update=devicesize for cases where the underlying device
+       can change size.
+    -   Default to --auto=yes so the array devices with 'standard' names
+       get created automatically, as this is almost always what is wanted.
+    -   Give useful message if raid4/5/6 cannot be started because it is
+       not clean and is also degraded.
+    -   Increase raid456 stripe cache size if needed to --grow the array.
+       The setting used unfortunately requires intimate knowledge of the
+       kernel, and it not reset when the reshape finishes.
+    -   Change 'Device Size' to 'Used Dev Size' because it only shows how
+       much of each device is actually used, not how big they are.
+    -   --wait or -W will wait for resync activity to finish on the given
+       devices.
+    -   Fix some problems with --update=uuid and add a test.
+    -   If two drives in a raid5 disappear at the same time, then "-Af"
+        will add them both in rather than just one and forcing the array
+       to 'clean'.  This is slightly safer in some cases.
+    -   Check device is large enough before hot-add: this improves quality
+       of error message.
+    -   Don't hold md device open for so long in --monitor mode - map_dev
+       can be slow and interferes with trying to stop the array.
+    -   Support --uuid= with --create to choose your own UUID.
+    -   New major more "--incremental" for incremental assemble of arrays,
+       intended for use with udev.
+
+Development of mdadm is sponsored by
+ SUSE Labs, Novell Inc.
+
+NeilBrown  21st December 2006
+Blessed Christmas to all.
index 3d68406714a4db7f3078b82e84907842b9a1638b..eabcdffca53669c6d79b65f4f196fa3fb38e6866 100644 (file)
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,4 +1,4 @@
-Changes Prior to this release
+Changes Prior to 2.6 release
     -   Fixed UUID printing in "--detail --brief" for version1 metadata.
     -   --update=resync did exactly the wrong thing for version1 metadata.
        It caused a resync to not happen, rather than to happen.
index ebe501f7b642b6c50124cc06482009438d74672d..705c402cb9cc90dae4a22a74ff979efe0d397764 100644 (file)
@@ -391,6 +391,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. */
+       avail = NULL;
        active_disks = count_active(st, mdfd, &avail, &info);
        if (enough(info.array.level, info.array.raid_disks,
                   info.array.layout, info.array.state & 1,
index 213e58d6facaf9b661af79433fa45c42e83ff098..e5d98fb0a89a5c2a99735d337468f6a8f1a94265 100644 (file)
--- a/Monitor.c
+++ b/Monitor.c
@@ -338,7 +338,7 @@ int Monitor(mddev_dev_t devlist,
                        close(fd);
 
                        for (i=0; i<MaxDisks; i++) {
-                               mdu_disk_info_t disc;
+                               mdu_disk_info_t disc = {0};
                                int newstate=0;
                                int change;
                                char *dv = NULL;
index 7e39c854fb2089900460a90cd72a5310a89c3a5d..4e0a949ed8051f401cbeaddc93562bb4b46cde7d 100644 (file)
--- a/ReadMe.c
+++ b/ReadMe.c
@@ -29,7 +29,7 @@
 
 #include "mdadm.h"
 
-char Version[] = Name " - v2.5.6 - 9 November 2006\n";
+char Version[] = Name " - v2.6 - 21 December 2006\n";
 
 /*
  * File: ReadMe.c
index 74359ec91cdbaafda8d115a8c6ce073421eee536..39f9cbd8e198f1be0a90bad27fe7a6b1bc3e559b 100644 (file)
--- a/inventory
+++ b/inventory
@@ -14,6 +14,7 @@ ANNOUNCE-2.5.3
 ANNOUNCE-2.5.4
 ANNOUNCE-2.5.5
 ANNOUNCE-2.5.6
+ANNOUNCE-2.6
 Assemble.c
 bitmap.c
 bitmap.h
@@ -27,12 +28,17 @@ dlink.c
 dlink.h
 Examine.c
 Grow.c
+Incremental.c
 INSTALL
 inventory
+kernel-patch-2.6.18
+kernel-patch-2.6.18.6
+kernel-patch-2.6.19
 Kill.c
 makedist
 Makefile
 Manage.c
+mapfile.c
 md.4
 md5.h
 mdadm.8
@@ -102,6 +108,7 @@ tests/05r6-bitmapfile
 tests/06name
 tests/06r5swap
 tests/06sysfs
+tests/06update-uuid
 tests/06wrmostly
 tests/07testreshape5
 tests/check
diff --git a/mdadm.8 b/mdadm.8
index c00f5faf5a009bda4ae8fa652025478e7edddeb4..2270c7d78c77d83369aa3d97302fa6f0cb54a65d 100644 (file)
--- a/mdadm.8
+++ b/mdadm.8
@@ -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 "" v2.5.6
+.TH MDADM 8 "" v2.6
 .SH NAME
 mdadm \- manage MD devices
 .I aka
index 3a92fb96d8cbea0d416f99bd85d2a364ffcdef60..336b9b2120f19da6734a3bb05959bfebd913fed8 100644 (file)
@@ -1,6 +1,6 @@
 Summary:     mdadm is used for controlling Linux md devices (aka RAID arrays)
 Name:        mdadm
-Version:     2.5.6
+Version:     2.6
 Release:     1
 Source:      http://www.cse.unsw.edu.au/~neilb/source/mdadm/mdadm-%{version}.tgz
 URL:         http://www.cse.unsw.edu.au/~neilb/source/mdadm/
index f7fb9b7b3ae085b6ea5ec33fffe7374f78330e4b..13472f9749085a4a45988805ae42766aaa87d6e7 100644 (file)
@@ -1,5 +1,5 @@
 .\" -*- nroff -*-
-.TH MDASSEMBLE 8 "" v2.5.6
+.TH MDASSEMBLE 8 "" v2.6
 .SH NAME
 mdassemble \- assemble MD devices
 .I aka
index 8f328436b86a8667b189f87a00bc32c98b875f92..aeee0b7b4c8694127853f279626f3efbb7b37d2d 100644 (file)
--- a/super0.c
+++ b/super0.c
@@ -703,7 +703,6 @@ static int load_super0(struct supertype *st, int fd, void **sbp, char *devname)
         *  1 on cannot get superblock
         *  2 on superblock meaningless
         */
-       unsigned long size;
        unsigned long long dsize;
        unsigned long long offset;
        mdp_super_t *super;
@@ -715,8 +714,9 @@ static int load_super0(struct supertype *st, int fd, void **sbp, char *devname)
 
        if (dsize < MD_RESERVED_SECTORS*512 * 2) {
                if (devname)
-                       fprintf(stderr, Name ": %s is too small for md: size is %ld sectors.\n",
-                               devname, size);
+                       fprintf(stderr, Name
+                           ": %s is too small for md: size is %llu sectors.\n",
+                               devname, dsize);
                return 1;
        }