--- /dev/null
+Subject: ANNOUNCE: mdadm 2.0 - A tool for managing Soft RAID under Linux
+
+I am (at last) please to announce the availability of
+ mdadm version 2.0
+
+It is available at the usual places:
+ http://www.cse.unsw.edu.au/~neilb/source/mdadm/
+and
+ http://www.{countrycode}.kernel.org/pub/linux/utils/raid/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.0 contains a substantial rewrite of various pieces of
+functionality, particularly the --create option. This enables support
+for a new style of superblock - the version-1 superblock.
+Version-1 can support many more than 28 devices and can be easily
+moved between hosts with different endian-ness.
+Release 2.0 also contains support for the recent bitmap-intent-logging
+which will appear in 2.6.13, and the RAID1 write-behind that will be
+available in 2.6.14.
+
+This release comes with a test-suite which has been used to verify that
+mdadm-2.0 actually works in a number of common scenarios. Some of the
+tests require a bleeding-edge kernel, so don't be surprised if some fail
+on kernels prior to 2.6.14.
+
+Being a '.0' release, 2.0 should be treated with some caution.
+However I believe it is quite stable and can safely be used on
+production systems.
+
+
+Development of mdadm has moved from CSE@UNSW and is now sponsored by
+ SUSE Labs, Novell Inc.
+
+NeilBrown 25th August 2005
+
all : mdadm mdadm.man md.man mdadm.conf.man
-everything: all mdadm.static mdadm.tcc mdadm.uclibc mdassemble mdassemble.uclibc mdassemble.static mdassemble.man
+everything: all mdadm.static mdadm.uclibc swap_super mdassemble mdassemble.uclibc mdassemble.static mdassemble.man
+# mdadm.tcc doesn't work..
mdadm : $(OBJS)
$(CC) $(LDFLAGS) -o mdadm $^
clean :
rm -f mdadm $(OBJS) core *.man mdadm.tcc mdadm.uclibc mdadm.static *.orig *.porig *.rej *.alt \
- mdassemble mdassemble.static mdassemble.uclibc mdassemble.klibc
+ mdassemble mdassemble.static mdassemble.uclibc mdassemble.klibc swap_super
dist : clean
./makedist
/*
* mdadm - manage Linux "md" devices aka RAID arrays.
*
- * Copyright (C) 2001-2002 Neil Brown <neilb@cse.unsw.edu.au>
+ * Copyright (C) 2001-2005 Neil Brown <neilb@cse.unsw.edu.au>
*
*
* This program is free software; you can redistribute it and/or modify
#include "mdadm.h"
-char Version[] = Name " - v2.0-devel-3 - DEVELOPMENT VERSION NOT FOR REGULAR USE - 4 August 2005\n";
+char Version[] = Name " - v2.0 - 25 August 2005\n";
/*
* File: ReadMe.c
*/
total_bits = bitmap_bits(info->sb.sync_size, info->sb.chunksize);
- while ((n = read(fd, buf, sizeof(*buf))) > 0) {
+ while ((n = read(fd, buf, sizeof(buf))) > 0) {
unsigned long long remaining = total_bits - read_bits;
- if (remaining > sizeof(*buf) * 8) /* we want the full buffer */
- remaining = sizeof(*buf) * 8;
+ if (remaining > sizeof(buf) * 8) /* we want the full buffer */
+ remaining = sizeof(buf) * 8;
if (remaining > n * 8) /* the file is truncated */
remaining = n * 8;
dirty_bits += count_dirty_bits(buf, remaining);
ANNOUNCE-1.8.0
ANNOUNCE-1.8.1
ANNOUNCE-1.9.0
+ANNOUNCE-2.0
ANNOUNCE-2.0-devel-1
ANNOUNCE-2.0-devel-2
ANNOUNCE-2.0-devel-3
raid5extend.c
super0.c
super1.c
+swap_super.c
test
tests/
tests/00linear
+tests/00multipath
tests/00raid0
tests/00raid1
tests/00raid10
tests/02r6grow
tests/03r0assem
tests/03r5assem
+tests/03r5assemV1
tests/04r0update
tests/04r1update
tests/05r1-bitmapfile
+tests/05r1-grow-external
+tests/05r1-grow-internal
tests/05r1-internalbitmap
+tests/05r1-internalbitmap-v1a
+tests/05r1-internalbitmap-v1b
+tests/05r1-internalbitmap-v1c
tests/05r1-n3-bitmapfile
+tests/05r1-re-add
+tests/05r1-re-add-nosuper
+tests/06name
+tests/06r5swap
+tests/06sysfs
+tests/06wrmostly
tests/ToTest
tests/check
tests/testdev
ls -l $target/$base
if tar tzf $target/$base | sed 's,[^/]*/,,' | sort | diff -u inventory -
then : correct files found
- else echo "Extra files, or invertory is out-of-date"
+ else echo "Extra files, or inventory is out-of-date"
rm $target/$base
exit 1
fi
-
+exit 1
rpm -ta $target/$base
find /home/neilb/src/RPM -name "*mdadm-$version-*" \
-exec cp {} $target/RPM \;
- #cp ANNOUNCE-$version $target/ANNOUNCE
- #cp ChangeLog $target/ChangeLog
+ cp ANNOUNCE-$version $target/ANNOUNCE
+ cp ChangeLog $target/ChangeLog
scp $target/$base master.kernel.org:/pub/linux/utils/raid/mdadm/mdadm-$version.tar.gz
- #scp $target/ANNOUNCE $target/ChangeLog master.kernel.org:/pub/linux/utils/raid/mdadm/
+ scp $target/ANNOUNCE $target/ChangeLog master.kernel.org:/pub/linux/utils/raid/mdadm/
else
if [ ! -f $target/$base ]
then
.\" -*- nroff -*-
-.TH MDADM 8 "" v2.0-devel-3
+.TH MDADM 8 "" v2.0m
.SH NAME
mdadm \- manage MD devices
.I aka
Summary: mdadm is used for controlling Linux md devices (aka RAID arrays)
Name: mdadm
-Version: 2.0-devel-3
+Version: 2.0
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/
bms->sync_size = __cpu_to_le64(size);
bms->write_behind = __cpu_to_le32(write_behind);
-
-
return 1;
}
#define MD_NEW_SIZE_SECTORS(x) ((x & ~(MD_RESERVED_SECTORS - 1)) - MD_RESERVED_SECTORS)
-main(int argc, char *argv[])
+extern long long lseek64(int, long long, int);
+
+int main(int argc, char *argv[])
{
int fd, i;
unsigned long size;
mdadm --grow $md0 --size max
check resync
check wait
-testdev $md0 1 $[size-1] 1
+testdev $md0 1 $[size-1-64] 1
mdadm --grow $md0 --size $[size/2]
check nosync
mdadm --grow $md0 --size max
check resync
check wait
-testdev $md0 3 $[size-1] 128
+testdev $md0 3 $[size-1-64] 128
mdadm --grow $md0 --size $[size/2]
check nosync
mdadm --grow $md0 --size max
check resync
check wait
-testdev $md0 2 $[size-1] 128
+testdev $md0 2 $[size-1-64] 128
mdadm --grow $md0 --size $[size/2]
check nosync