+Changes Prior to 2.6.7 release
+ - Avoid NULL reference calling free_super and elsewhere.
+ - Remove stray semicolon (Causes compile error with gcc-2.95)
+ - Fix autoassemble for stack arrays.
+
+Changes Prior to 2.6.6 release
+ - "make everything" now make mdassemble.auto
+ - fix compile problem with mdassemble.auto
+ - Update FAQ URLs in man page again.
+
+Changes Prior to 2.6.5 release
+ - Avoid segfault when parsing /proc/mdstat with auto-read-only
+ arrays.
+ - Fix problem with failing to add devices to v.large (>4TB) arrays,
+ cause by problems with device-size overflow.
+ - For v0.90 superblocks, print the 'Events' count as a real count,
+ not 2 numbers separated by a dot.
+ - Updates some URLs in the man page.
+ - Allow creation of a RAID6 with exactly one missing device.
+ - Use LOG_PID for syslog, so you get the pid of mdadm in the log
+ files.
+ - --export now works with --examine too (not just --detail)
+ - Improve auto-creation of device special file when using
+ --incremental
+ - Simple locking for --incremental so mdadm doesn't get confused
+ when run concurrently with itself.
+ - Make --incremental cope better with arrays that are being reshaped.
+
+Changes Prior to 2.6.4 release
+ - Make "--create --auto=mdp" work for non-standard device names.
+ - Fix restarting of a 'reshape' if it was stopped in the middle.
+ - Fix a segfault when using v1 superblock.
+ - Make --write-mostly effective when re-adding a device to an array.
+ - Various minor fixes
+
+Changes Prior to 2.6.3 release
+ - allow --write-behind to be set for --grow.
+ - When adding new disk to an array, don't reserve so much bitmap
+ space that the disk cannot store the required data. (Needed when
+ 1.x array was created with older mdadm).
+ - When adding a drive that was a little too small, we did not get
+ the correct error message.
+ - Make sure that if --assemble find an array in the critical region
+ of a reshape, and cannot find the critical data to restart the
+ reshape, it gives an error message.
+ - Fix segfault with '--detail --export' and non-persistent
+ superblocks.
+ - Various manpage updates.
+ - Improved 'raid4' support (--assemble, --monitor)
+ - Option parsing fixes w.r.t -a
+ - Interpret "--assemble --metadata=1" to allow any version 1.x
+ metadata, and be more specific in the "metadata=" message printed
+ with --examine --brief
+ - Fix spare migration in --monitor.
+
+Changes Prior to 2.6.2 release
+ - --fail detached and --remove faulty can be used to fail and
+ remove devices that are no longer physically present.
+ - --export option for --detail or present information in a format
+ that can be processed by udev.
+ - fix internal bitmap allocation problems with v1.1, v1.2 metadata.
+ - --help now goes to stdout so you can direct it to a pager.
+ - Various manpage updates.
+ - Make "--grow --add" for linear arrays really work.
+ - --auto-detect to trigger in-kernel autodetect.
+ - Make return code for "--detail --test" more reliable. Missing
+ devices as well as failed devices cause an error.
+
+Changes Prior to 2.6.1 release
+ - --monitor was producing some meaningless warnings due to a bug.
+ - Fix some compiler warnings.
+ - Fully support --grow for raid6. If a reshape crashed during the
+ critical period, mdadm wouldn't restore the Q information
+ properly.
+ - Update documentation for --grow.
+
+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.
+ - 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.
+
+Changes Prior to 2.5.6 release
+ - Fix bug which meant "bitmap=xxx" in mdadm.conf was not handled
+ properly.
+ - Documentation updates.
+ - Fix bug that caused infinite loop when doing auto-assembly,
+ in certain cases where arrays couldn't be assembled.
+
+Changes Prior to 2.5.5 release
+ - Don't #include linux/blkpg.h as that isn't safe. Just
+ include the content literally.
+ - Reduce maximum bitmap usage when working with bitmap files,
+ so that a only single-page allocations are made, even on
+ 64bit hosts with 4K pages.
+ - Close stray fd in mdassemble so that it can assemble stacked
+ devices
+ - If mdassemble finds an array already assembled, it marks it
+ read-write.
+ - Remove error in md_open if array is already active. This isn't
+ needed and gets in the ways if an array was created e.g. in
+ initramfs, but device doesn't yet exist in /dev.
+ - When --assemble --scan is run, if all arrays that could be found
+ have already been started, don't report an error.
+ - Fix a couple of bugs related to raid10 and the new 'offset' layout.
+ - Improve error message when a wrong '--update' option is given.
+
+Changes Prior to 2.5.4 release
+ - When creating devices in /dev/md/ create matching symlinks
+ from /dev. e.g. /dev/md0 -> /dev/md/0.
+ Allow this to be disabled in mdadm.conf or on command line.
+ - Fix some endian-ness issues with version-1 superblocks (affects
+ bigendian only).
+ - Fix endian problem with 'bitmap' metadata
+ - Allow a number (of partitions) after the 'yes' option to --auto=
+ This is particularly useful in the 'create' line in mdadm.conf.
+ - Remove partitions from any whole device that is made part of
+ an md array. This is a work-around for annoying messages
+ when the first block on some drive accidentally looks like a
+ partition table.
+
+Changes Prior to 2.5.3 release
+ - Document v0.91 superblocks in md.4
+ - Make GPL explicit in man pages.
+ - Fix recent breakage of starting degraded arrays.
+ - Tidyup automatic name choice for v-1 arrays:
+ /dev/md_d0 now becomes '0', not '_d0'.
+
+Changes Prior to 2.5.2 release
+ - Fix problem with compiling with gcc-2 compilers
+ - Fix compile problem of post-incrmenting a variable in a macro arg.
+ - Stop map_dev from returning [0:0], as that breaks things.
+ - Add 'Array Slot' line to --examine for version-1 superblocks
+ to make it a bit easier to see what is happening.
+ - Work around bug in --add handling for version-1 superblocks
+ in 2.6.17 (and prior).
+ - Make -assemble a bit more resilient to finding strange
+ information in superblocks.
+ - Don't claim newly added spares are InSync!! (don't know why that
+ code was ever in there)
+ - Work better when no 'ftw' is available, and check to see
+ if current uclibc provides ftw.
+ - Never use /etc/mdadm.conf if --config file is given (previously
+ some code used one, some used the other).
+
+Changes Prior to 2.5.1 release
+ - Various fixes for gcc warnings
+ - uclibc warnings
+ - Makefile improvements for static linking/intalling
+ - Makefile uninstall target
+ - Really fix return status of --examine
+ - Typos
+ - Byteorder stuff (again)
+ - Don't try to create devices with --manage or --grow
+ - allow default metadata (superblock) type to be specified
+ in mdadm.conf
+ - Get --stop to list devices stopped but honour --quiet
+ - remove libssl dependency
+ - Avoid some misdetection of overlapping partitions
+ - Fix memory leak in --monitor mode
+
+Changes Prior to 2.5 release
+ - Support 'mailfrom' line in mdadm.conf so the From: line in alert
+ emails can be explicitly set.
+ - Arrange that SparesMissing (which is similar in import to
+ DegradedArray) generates an Email.
+ - Assume "DEVICE partitions" if no DEVICE line is given.
+ - Support new 'offset' layout for raid10.
+ - When creating a bitmap file, choose a chunksize to limit number
+ of bitmap chunks to 2 million. More than this can cause kmalloc
+ failure.
+ - New 'CREATE' line in mdadm.conf for defaults such as owner, group,
+ mode and auto-flag
+ - --detail checks if array has been started or not and includes that
+ in report.
+ - When using --update=uuid on an array with a bitmap, update the
+ bitmap's uuid too.
+ - Add a copy of /proc/mdstat to the mail message sent by mdadm
+ --monitor.
+ - New flag --no-degraded to avoid starting arrays if there are
+ fewer devices available than last time the array was started.
+ This is only needed with --scan, as with --scan, that behaviour
+ is the default.
+ - Support for 'homehost' concept. This is a fairly major update.
+ It includes a configfile option and a command line option for
+ specifying a homehost, records that host in the superblock,
+ and reports the homehost where possible.
+ - Support for Auto Assembly. "mdadm -As" will, if provided with
+ the name of a homehost, try to assemble all arrays it can find
+ that were created for that homehost. See man pages for more details.
+
+Changes Prior to 2.4.1 release
+ - Honour --write-mostly when adding to an array without persistent
+ superblocks.
+ - Fix alignment problem in version-1 superblocks.
+ NOTE: This is an incompatable change affecting raid5 reshape.
+ If you want to reshape a raid5 using version-1 superblocks,
+ use 2.6.17-rc2 or later, and mdadm-2.4.1 or later.
+
+Changes Prior to 2.4 release
+ - Rewrite 'reshape' support including performing a backup
+ of the critical region for a raid5 growth, and restoring that
+ backup after a crash.
+ - Put a 'canary' at each end of the backup so a corruption
+ can be more easily detected.
+ - Remove useless 'ident' arguement from ->getinfo_super method.
+ - Support --backup-file for backing-up critical section during
+ growth.
+ - Erase old superblocks (of different versions) when creating new
+ array.
+ - Allow --monitor to work with arrays with >28 devices
+ - Report reshape information in --detail
+ - Handle symlinks in /dev better
+ - Fix mess in --detail output which a device is missing.
+ - Manpage tidyup
+ - Support 'bitmap=' in mdadm.conf for auto-assembling arrays with
+ write-intent bitmaps in separate files.
+ - Updates to md.4 man page including section on RESTRIPING and SYSFS
+
+Changes Prior to 2.3.1 release
+ - Fixed -O2 compile so I could make and RPM.
+ - Type cast number to be printed %llu so it compiles on 64bit
+ machines. (Thanks Luca).
+ - Stop using asm/byteorder.h - to make Redhat happy :-(
+ - Require bitmap files to have a '/' in their name.
+ - Error-check a few syscalls - code from SuSE package.
+
+Changes Prior to 2.3 release
+ - Try /etc/mdadm/mdadm.conf if /etc/mdadm.conf doesn't exist.
+ This provided compatability for Debian.
+ - Fixed for version-1 superblock:
+ report chunksize for raid6 and raid10
+ make sure device size used is a multiple of chunksize
+ - Fix "--assemble --scan" crash.
+ - Fix completely failure to create array on ppc64
+ - Fix memcmp in place of memcpy
+ - A few minor improvements to online help
+ - Clean up usage of 'long long' for used-size of devices, so
+ that it is possible to create a raid1 of 7TB devices!
+ - Make internal bitmaps work on 7TB raid1 arrays.
+ - Provide error message if --examine doesn't find any superblock.
+ - Report 'reshape' status in --examine - this depends on kernel
+ patches that are not yet finalised.
+ - Report bitmap status in --detail and --examine
+ - Default to v1 superblocks instead of v0.90 if the array
+ is too big for 0.90 to handle.
+ - Sort the output of "mdadm --detail --scan" so that it is
+ in a suitable order for assembling arrays. i.e. components come
+ before an array that they are part of.
+ - Print size of large reiserfs array properly went warning of
+ possible confilcts.
+
+Changes Prior to 2.2 release
+ - Assorted bug fixes
+ - Support write-intent-bitmaps on raid10
+ - Support little-endian (Rather than hostendian) bitmaps.
+ - Return correct error code from 'mdadm -S'
+ - Remove extra blank line from 'mdadm -Eb' output.
+ - Improve option parsing so that -a and -b do not have
+ optional arguements: the arg is either required or not
+ depending on context.
+ - Allow scanning of devices listed in /proc/partitions even
+ if they don't appear in /dev.
+ - Support --assume-clean in --create mode as well as --build
+ - Add support for --monitor to report to syslog: -y or --syslog.
+ Thanks to Ross Vandegrift
+ - --monitor now reports which device failed in a 'Fail' message
+ This broke with 2.6
+ - Improve chance of array starting properly after a crash.
+ mdadm was insisting the event numbers were identical, but this
+ isn't needed, and is a problem if the crash was while the metadata
+ was being updated.
+ - Support --update==uuid
+ - Added README.initramfs and mkinitramfs to help people use an
+ initram for starting md arrays at boot.
+
+Changes Prior to 2.1 release
+ - Fix assembling of raid10 array when devices are missing.
+ mdadm now correctly detects if a array is workable or not
+ depending on which devices are present, and so will correctly
+ handle "--assemble --force" if multiple devices have failed.
+ - Report raid10 layout in --examine output.
+ - Fix assembling of arrays that use the version-1 superblock and
+ have spares. Previously the spares would be ignored.
+ - Fix bug so that multiple drives can be re-added at once.
+ - Fix problem with hot-adding a bitmap to version-1-superblock
+ arrays.
+
+Changes Prior to 2.0
+ - Support assembling from byte-swapped superblocks
+ metadata type "0.swap" and --update=byteorder
+ - write-mostly and write-behind support for raid1.
+ - Support --name= and 'name=' config entry for identifying
+ arrays be name.
+ - RAID10 in man pages.
+ - Lot of minor manpage updates
+
+Changes Prior to 2.0-devel-3 release
+ - Assorted fixes for multiple bugs...
+ - Add test suite
+
+Changes Prior to 1.12.0 release
+ Several of these are backported from the Debian package
+ - Don't use 'lstat' to check for blockdevices, use stat.
+ - Document --size=max option for --grow
+ - Document SparesMissing event and DeviceDisappeared/WrongLevel
+ - --stop --scan repeatly cycles until no more progress can be made
+ so that stack devices are stopped properly
+ - Minor type rationalisation for ident->uuid - now always 'int[]'
+ - Fix type in online help for --grow (was -F, now -G)
+ - Allow --auto command line option to set default auto=
+ value when running "--assemble --scan". Previously
+ --auto was ignored if --scan was given
+ - Fix a few type casts
+ - Fix parsing of /dev/md/N in is_standard
+ - Fix rounding errors in human_size()
+ - Fix silly example in mdadm.conf-examples
+ - When finding a /dev name for a device, prefer shorter names
+ - Suppress listing of devices= in --brief output of -D or -E,
+ unless -v is given (-vv gives the old behaviour with -Dsv).
+ This is because the device list can change and so is not a
+ stable aspect of the array
+ - Allow --force with --grow so '-Gfn1' works (on raid1)
+ - Replace sprintf calls with snprintf (to quiet diet-libc)
+ - Add man page for mdassemble
+ - Fix compilation with tinyc
+
+Changes Prior to 1.11.0 release
+ - Fix embarassing bug which causes --add to always fail.
+
+Changes Prior to 1.10.0 release
+ - Fix bug with --config=partitions
+ - Open sub-devices with O_EXCL to detect if already in use
+ - Make sure superblock updates are flushed directly to disk.
+
+Changes Prior to 2.0-devel-1 release
+ - Support for version-1 superblock. See --metadata option.
+ - Support for bitmap based intent logging.
+ - Minor fixes.
+
+Changes Prior to 1.9.0 release
+ - Fix rpm build problem (stray %)
+ - Minor manpage updates
+ - Change "dirty" status to "active" as it was confusing people.
+ - --assemble --auto recognises 'standard' name and insists on using
+ the appropriate major/minor number for them.
+ - Remove underscore from partition names, so partitions of
+ "foo" are "foo1", "foo2" etc (unchanged) and partitions of
+ "f00" are "f00p1", "f00p2" etc rather than "f00_p1"...
+ - Use "major", "minor", "makedev" macros instead of
+ "MAJOR", "MINOR", "MKDEV" so that large device numbers work
+ on 2.6 (providing you have glibc 2.3.3 or later).
+ - Add some missing closes of open file descriptors.
+ - Reread /proc/partition for every array assembled when using
+ it to find devices, rather than only once.
+ - Make "mdadm -Ss" stop stacked devices properly, by reversing the
+ order in which arrays are stopped.
+ - Improve some error messages.
+ - Allow device name to appear before first option, so e.g.
+ mdadm /dev/md0 -A /dev/sd[ab]
+ works.
+ - Assume '-Q' if just a device is given, rather than being silent.
+ - Change "dirty" status to "active" as it was confusing people.
+
+Changes Prior to 1.8.0 release
+ - Makefile cleanup from Luca Berra <bluca@comedia.it>
+ - --pid-file (-i) to set a pid file to use with --monitor --daemonise
+ - Fix typo in mdadm man page
+ - Fix coredump when "-s" used with no config file present.
+ - Support new "faulty" personality which can inject synthetic
+ faults. (Not in kernel.org yet at 1Nov2004)
+ - Support raid0/linear on devices > 2 Terabytes
+ - Make sure raid6 resyncs when created with one missing device
+
+Changes Prior to 1.7.0 release
+ - Support "--grow --add" to add a device to a linear array, if the
+ kernel supports it. Not documented yet.
+ - Restore support for uclibc which was broken recently.
+ - Several improvements to the output of --detail, including
+ reporting "resyncing" or "recovering" in the state.
+ - Close filedescriptor at end of --detail (exit would have closed it
+ anyway, so this isn't abig deal).
+ - Report "Sync checkpoint" in --examine output if appropriate.
+ - Add --update=resync for --assemble mode to for a resync when the
+ array is assembled.
+ - Add support for "raid10", which is under development in 2.6.
+ Not documented yet.
+ - --monitor now reads spare-group and spares info from config file
+ even when names of arrays to scan are given on the command line
+
+Changes Prior to 1.6.0 release
+ - Device name given in -Eb is determined by examining /dev rather
+ than assuming /dev/md%d
+ - Fix bug in --monitor where an array could be held open an so
+ could not be stopped without killing mdadm.
+ - Add --grow mode. Currently only --size and --raid-disks can be
+ changed. Both require kernel support which, at the time of
+ writing, is not in a release kernel yet.
+ - Don't print out "errors" or "no-errors" in -D and -E, as the bit
+ is never set or used.
+ - Use md event notification in 2.6.??? to make --monitor mode
+ respond instantly to events.
+ - Add --auto= option and auto= configfile entry to tell mdadm to
+ create device files as needed. This is particularly useful
+ with partitioned arrays where the major device number can change.
+ - When generating --brief listing, if the standard name doesn't
+ exist, search /dev for one rather than using a temp name.
+ - Allow --build to build raid1 and multipath arrays.
+ - Add "--assume-clean" for Create and Build, particularly for raid1
+ Note: this is dangerous. Only use it if you are certain.
+ - Fix bug so that Rebuild status monitoring works again.
+ - Add "degraded" and "recovering" options to the "Status:"
+ entry for --detail
+
+Changes Prior to 1.5.0 release
+ - new commands "mdassemble" which is a stripped-down equivalent of
+ "mdadm -As", that can be compiled with dietlibc.
+ Thanks to Luca Berra <bluca@comedia.it>.
+ It can be using in an initramfs or initrd.
+ - Fix compiling error with BLKGETSIZE64 and some signed/unsigned
+ comparison warnings.
+ - Add Rebuild Status (% complete) to --detail output.
+ - Support "--monitor --test" which will generate a test alert
+ for each array once, to test notification paths.
+ - Generate RebuildFinished event when rebuild finishes.
+ - Support for raid6 as found in 2.6.2 - thanks to
+ H. Peter Anvin <hpa@zytor.com>
+ - Support partitioned md arrays with a different major number and
+ naming scheme (md_dX in /proc/mdstat, /dev/md/dXpY in /dev).
+