rpms/mdadm/F-11 mdadm-3.0-mdmon-dev-.mdadm.patch, NONE, 1.1 mdadm-3.0-metadata.patch, NONE, 1.1 mdadm-3.0-uuid.patch, NONE, 1.1 mdadm-3.0.3-intel-serial.patch, NONE, 1.1 mdadm-raid-check-sysconfig, NONE, 1.1 .cvsignore, 1.23, 1.24 mdadm.spec, 1.71, 1.72 mdmonitor.init, 1.8, 1.9 raid-check, 1.3, 1.4 sources, 1.24, 1.25

Doug Ledford dledford at fedoraproject.org
Tue Nov 10 13:21:37 UTC 2009


Author: dledford

Update of /cvs/extras/rpms/mdadm/F-11
In directory cvs1.fedora.phx.redhat.com:/tmp/cvs-serv24187

Modified Files:
	.cvsignore mdadm.spec mdmonitor.init raid-check sources 
Added Files:
	mdadm-3.0-mdmon-dev-.mdadm.patch mdadm-3.0-metadata.patch 
	mdadm-3.0-uuid.patch mdadm-3.0.3-intel-serial.patch 
	mdadm-raid-check-sysconfig 
Log Message:
* Wed Nov 04 2009 Doug Ledford <dledford at redhat.com> - 3.0.3-1
- New upstream release 3.0.3 (bz523320, bz527281)
- Update a couple internal patches
- Drop a patch in that was in Neil's tree for 3.0.3 that we had pulled for
  immediate use to resolve a bug
- Drop the endian patch because it no longer applied cleanly and all attempts
  to reproduce the original problem as reported in bz510605 failed, even up
  to and including downloading the specific package that was reported as
  failing in that bug and trying to reproduce with it on both ppc and ppc64
  hardware and with both ppc and ppc64 versions on the 64bit hardware.
  Without a reproducer, it is impossible to determine if a rehashed patch
  to apply to this code would actually solve the problem, so remove the patch
  entirely since the original problem, as reported, was an easy to detect DOA
  issue where installing to a raid array was bound to fail on reboot and so
  we should be able to quickly and definitively tell if the problem resurfaces.
- Update the mdmonitor init script for LSB compliance (bz527957)
- Link from mdadm.static man page to mdadm man page (bz529314)
- Fix a problem in the raid-check script (bz523000)
- Fix the intel superblock handler so we can test on non-scsi block devices


mdadm-3.0-mdmon-dev-.mdadm.patch:
 mdmon.c |   12 ++++++------
 msg.c   |    2 +-
 util.c  |    4 ++--
 3 files changed, 9 insertions(+), 9 deletions(-)

--- NEW FILE mdadm-3.0-mdmon-dev-.mdadm.patch ---
--- mdadm-3.0.3/mdmon.c.mdmon	2009-10-21 20:13:13.000000000 -0400
+++ mdadm-3.0.3/mdmon.c	2009-11-04 13:00:26.924089288 -0500
@@ -118,7 +118,7 @@ static int test_pidfile(char *devname)
 	char path[100];
 	struct stat st;
 
-	sprintf(path, "/var/run/mdadm/%s.pid", devname);
+	sprintf(path, "/dev/.mdadm/%s.pid", devname);
 	return stat(path, &st);
 }
 
@@ -132,7 +132,7 @@ int make_pidfile(char *devname, int o_ex
 	if (sigterm)
 		return -1;
 
-	sprintf(path, "/var/run/mdadm/%s.pid", devname);
+	sprintf(path, "/dev/.mdadm/%s.pid", devname);
 
 	fd = open(path, O_RDWR|O_CREAT|o_excl, 0600);
 	if (fd < 0)
@@ -163,7 +163,7 @@ pid_t devname2mdmon(char *devname)
 	pid_t pid = -1;
 	int fd;
 
-	sprintf(buf, "/var/run/mdadm/%s.pid", devname);
+	sprintf(buf, "/dev/.mdadm/%s.pid", devname);
 	fd = open(buf, O_RDONLY|O_NOATIME);
 	if (fd < 0)
 		return -1;
@@ -217,9 +217,9 @@ void remove_pidfile(char *devname)
 	if (sigterm)
 		return;
 
-	sprintf(buf, "/var/run/mdadm/%s.pid", devname);
+	sprintf(buf, "/dev/.mdadm/%s.pid", devname);
 	unlink(buf);
-	sprintf(buf, "/var/run/mdadm/%s.sock", devname);
+	sprintf(buf, "/dev/.mdadm/%s.sock", devname);
 	unlink(buf);
 }
 
@@ -233,7 +233,7 @@ int make_control_sock(char *devname)
 	if (sigterm)
 		return -1;
 
-	sprintf(path, "/var/run/mdadm/%s.sock", devname);
+	sprintf(path, "/dev/.mdadm/%s.sock", devname);
 	unlink(path);
 	sfd = socket(PF_LOCAL, SOCK_STREAM, 0);
 	if (sfd < 0)
--- mdadm-3.0.3/msg.c.mdmon	2009-10-21 20:13:13.000000000 -0400
+++ mdadm-3.0.3/msg.c	2009-11-04 12:12:46.281963910 -0500
@@ -147,7 +147,7 @@ int connect_monitor(char *devname)
 	int pos;
 	char *c;
 
-	pos = sprintf(path, "/var/run/mdadm/");
+	pos = sprintf(path, "/dev/.mdadm/");
 	if (is_subarray(devname)) {
 		devname++;
 		c = strchr(devname, '/');
--- mdadm-3.0.3/util.c.mdmon	2009-10-21 21:07:14.000000000 -0400
+++ mdadm-3.0.3/util.c	2009-11-04 12:12:46.282963942 -0500
@@ -1208,7 +1208,7 @@ int mdmon_running(int devnum)
 	char pid[10];
 	int fd;
 	int n;
-	sprintf(path, "/var/run/mdadm/%s.pid", devnum2devname(devnum));
+	sprintf(path, "/dev/.mdadm/%s.pid", devnum2devname(devnum));
 	fd = open(path, O_RDONLY, 0);
 
 	if (fd < 0)
@@ -1228,7 +1228,7 @@ int signal_mdmon(int devnum)
 	char pid[10];
 	int fd;
 	int n;
-	sprintf(path, "/var/run/mdadm/%s.pid", devnum2devname(devnum));
+	sprintf(path, "/dev/.mdadm/%s.pid", devnum2devname(devnum));
 	fd = open(path, O_RDONLY, 0);
 
 	if (fd < 0)

mdadm-3.0-metadata.patch:
 Detail.c |    6 +++---
 1 file changed, 3 insertions(+), 3 deletions(-)

--- NEW FILE mdadm-3.0-metadata.patch ---
--- mdadm-3.0/Detail.c.metadata	2009-09-11 02:10:24.000000000 -0400
+++ mdadm-3.0/Detail.c	2009-09-15 14:54:56.849391192 -0400
@@ -161,7 +161,7 @@
 			if (sra && sra->array.major_version < 0)
 				printf("MD_METADATA=%s\n", sra->text_version);
 			else
-				printf("MD_METADATA=%d.%02d\n",
+				printf("MD_METADATA=%d.%d\n",
 				       array.major_version, array.minor_version);
 		}
 		
@@ -208,7 +208,7 @@
 			if (sra && sra->array.major_version < 0)
 				printf(" metadata=%s", sra->text_version);
 			else
-				printf(" metadata=%d.%02d",
+				printf(" metadata=%d.%d",
 				       array.major_version, array.minor_version);
 		}
 
@@ -241,7 +241,7 @@
 		if (sra && sra->array.major_version < 0)
 			printf("        Version : %s\n", sra->text_version);
 		else
-			printf("        Version : %d.%02d\n",
+			printf("        Version : %d.%d\n",
 			       array.major_version, array.minor_version);
 		}
 

mdadm-3.0-uuid.patch:
 Detail.c |    5 +++++
 1 file changed, 5 insertions(+)

--- NEW FILE mdadm-3.0-uuid.patch ---
diff -up mdadm-3.0/Detail.c~ mdadm-3.0/Detail.c
--- mdadm-3.0/Detail.c~	2009-06-02 07:48:29.000000000 +0200
+++ mdadm-3.0/Detail.c	2009-09-14 17:11:15.000000000 +0200
@@ -185,6 +185,11 @@ int Detail(char *dev, int brief, int exp
 			if (mp && mp->path &&
 			    strncmp(mp->path, "/dev/md/", 8) == 0)
 				printf("MD_DEVNAME=%s\n", mp->path+8);
+                        if (mp && (mp->uuid[0] || mp->uuid[1] || mp->uuid[2] ||
+                                   mp->uuid[3]))
+                                printf("MD_UUID=%08x:%08x:%08x:%08x\n",
+                                        mp->uuid[0], mp->uuid[1], mp->uuid[2],
+                                        mp->uuid[3]);
 		}
 		goto out;
 	}

mdadm-3.0.3-intel-serial.patch:
 super-intel.c |    5 ++++-
 1 file changed, 4 insertions(+), 1 deletion(-)

--- NEW FILE mdadm-3.0.3-intel-serial.patch ---
--- mdadm-3.0.3/super-intel.c.serial	2009-10-21 20:13:13.000000000 -0400
+++ mdadm-3.0.3/super-intel.c	2009-11-05 16:07:28.896089680 -0500
@@ -2987,7 +2987,10 @@ static int add_to_super_imsm(struct supe
 	dd->fd = fd;
 	dd->e = NULL;
 	rv = imsm_read_serial(fd, devname, dd->serial);
-	if (rv) {
+	if (rv && check_env("IMSM_DEVNAME_AS_SERIAL")) {
+		memset(dd->serial, 0, MAX_RAID_SERIAL_LEN);
+		fd2devname(fd, (char *) dd->serial);
+	} else if (rv) {
 		fprintf(stderr,
 			Name ": failed to retrieve scsi serial, aborting\n");
 		free(dd);


--- NEW FILE mdadm-raid-check-sysconfig ---
#!/bin/bash
#
# Configuration file for /etc/cron.weekly/raid-check
#
# options:
#	ENABLED - must be yes in order for the raid check to proceed
#	CHECK - can be either check or repair depending on the type of
#		operation the user desires.  A check operation will scan
#		the drives looking for bad sectors and automatically
#		repairing only bad sectors.  If it finds good sectors that
#		contain bad data (meaning that the data in a sector does
#		not agree with what the data from another disk indicates
#		the data should be, for example the parity block + the other
#		data blocks would cause us to think that this data block
#		is incorrect), then it does nothing but increments the
#		counter in the file /sys/block/$dev/md/mismatch_count.
#		This allows the sysadmin to inspect the data in the sector
#		and the data that would be produced by rebuilding the
#		sector from redundant information and pick the correct
#		data to keep.  The repair option does the same thing, but
#		when it encounters a mismatch in the data, it automatically
#		updates the data to be consistent.  However, since we really
#		don't know whether it's the parity or the data block that's
#		correct (or which data block in the case of raid1), it's
#		luck of the draw whether or not the user gets the right
#		data instead of the bad data.  This option is the default
#		option for devices not listed in either CHECK_DEVS or
#		REPAIR_DEVS.
#	CHECK_DEVS - a space delimited list of devs that the user specifically
#		wants to run a check operation on.
#	REPAIR_DEVS - a space delimited list of devs that the user
#		specifically wants to run a repair on.
#	SKIP_DEVS - a space delimited list of devs that should be skipped
#
# Note: the raid-check script intentionaly runs last in the cron.weekly
# sequence.  This is so we can wait for all the resync operations to complete
# and then check the mismatch_count on each array without unduly delaying
# other weekly cron jobs.  If any arrays have a non-0 mismatch_count after
# the check completes, we echo a warning to stdout which will then me emailed
# to the admin as long as mails from cron jobs have not been redirected to
# /dev/null.  We do not wait for repair operations to complete as the
# md stack will correct any mismatch_cnts automatically.
#
# Note2: you can not use symbolic names for the raid devices, such as you
# /dev/md/root.  The names used in this file must match the names seen in
# /proc/mdstat and in /sys/block.

ENABLED=yes
CHECK=check
# To check devs /dev/md0 and /dev/md3, use "md0 md3"
CHECK_DEVS=""
REPAIR_DEVS=""
SKIP_DEVS=""


Index: .cvsignore
===================================================================
RCS file: /cvs/extras/rpms/mdadm/F-11/.cvsignore,v
retrieving revision 1.23
retrieving revision 1.24
diff -u -p -r1.23 -r1.24
--- .cvsignore	18 Mar 2009 18:22:06 -0000	1.23
+++ .cvsignore	10 Nov 2009 13:21:36 -0000	1.24
@@ -1,14 +1 @@
-mdmpd-0.4.tgz
-mdadm-2.2.tar.bz2
-mdadm-2.3.1.tgz
-mdadm-2.5.2.tar.bz2
-mdadm-2.5.3.tar.bz2
-mdadm-2.5.4.tgz
-mdadm-2.6.tgz
-mdadm-2.6.1.tgz
-mdadm-2.6.2.tgz
-mdadm-2.6.4.tgz
-mdadm-2.6.7.tar.bz2
-mdadm-2.6.7.1.tar.bz2
-mdadm-3.0-devel2.tar.bz2
-mdadm-3.0-devel3.tar.bz2
+mdadm-3.0.3.tar.bz2


Index: mdadm.spec
===================================================================
RCS file: /cvs/extras/rpms/mdadm/F-11/mdadm.spec,v
retrieving revision 1.71
retrieving revision 1.72
diff -u -p -r1.71 -r1.72
--- mdadm.spec	29 Jun 2009 19:25:48 -0000	1.71
+++ mdadm.spec	10 Nov 2009 13:21:36 -0000	1.72
@@ -1,12 +1,17 @@
 Summary:     The mdadm program controls Linux md devices (software RAID arrays)
 Name:        mdadm
-Version:     3.0
+Version:     3.0.3
 Release:     1%{?dist}
 Source:      http://www.kernel.org/pub/linux/utils/raid/mdadm/mdadm-%{version}.tar.bz2
 Source1:     mdmonitor.init
 Source2:     raid-check
 Source3:     mdadm.rules
+Source4:     mdadm-raid-check-sysconfig
 Patch1:      mdadm-2.5.2-static.patch
+Patch2:      mdadm-3.0-metadata.patch
+Patch3:      mdadm-3.0-uuid.patch
+Patch4:      mdadm-3.0-mdmon-dev-.mdadm.patch
+Patch5:      mdadm-3.0.3-intel-serial.patch
 URL:         http://www.kernel.org/pub/linux/utils/raid/mdadm/
 License:     GPLv2+
 Group:       System Environment/Base
@@ -28,34 +33,32 @@ file can be used to help with some commo
 %prep
 %setup -q
 %patch1 -p1 -b .static
+%patch2 -p1 -b .metadata
+%patch3 -p1 -b .uuid
+%patch4 -p1 -b .mdmon
+%patch5 -p1 -b .serial
 
 %build
 make %{?_smp_mflags} CXFLAGS="$RPM_OPT_FLAGS -fno-strict-aliasing" SYSCONFDIR="%{_sysconfdir}" mdadm.static mdadm mdmon
 
 %install
-rm -rf $RPM_BUILD_ROOT
-make DESTDIR=$RPM_BUILD_ROOT MANDIR=%{_mandir} BINDIR=/sbin install install-static
-rm -f $RPM_BUILD_ROOT/lib/udev/rules.d/*
-install -Dp -m 755 %{SOURCE1} $RPM_BUILD_ROOT/%{_initrddir}/mdmonitor
-install -Dp -m 755 %{SOURCE2} $RPM_BUILD_ROOT/%{_sysconfdir}/cron.weekly/raid-check
-install -Dp -m 644 %{SOURCE3} $RPM_BUILD_ROOT/lib/udev/rules.d/65-md-incremental.rules
-mkdir -p -m 700 $RPM_BUILD_ROOT/var/run/mdadm
+rm -rf %{buildroot}
+make DESTDIR=%{buildroot} MANDIR=%{_mandir} BINDIR=/sbin install install-static
+rm -f %{buildroot}/lib/udev/rules.d/*
+install -Dp -m 755 %{SOURCE1} %{buildroot}%{_initrddir}/mdmonitor
+install -Dp -m 755 %{SOURCE2} %{buildroot}%{_sysconfdir}/cron.weekly/99-raid-check
+install -Dp -m 644 %{SOURCE3} %{buildroot}/lib/udev/rules.d/65-md-incremental.rules
+install -Dp -m 644 %{SOURCE4} %{buildroot}%{_sysconfdir}/sysconfig/raid-check
+mkdir -p -m 700 %{buildroot}/var/run/mdadm
+ln -s mdadm.8.gz %{buildroot}%{_mandir}/man8/mdadm.static.8.gz
 
 %clean
-rm -rf $RPM_BUILD_ROOT
+rm -rf %{buildroot}
 
 %post
 if [ "$1" = 1 ]; then
     /sbin/chkconfig --add mdmonitor
 fi
-# If we are upgrading, the postun for mdmpd will not have deleted the init.d
-# file, so clean the stale file out here.  We should only have to carry this
-# baggage around for a little while before we can assume that the old mdmpd
-# stuff has been cleaned up.
-if [ -x /etc/init.d/mdmpd ]; then
-    service mdmpd stop > /dev/null 2>&1 ||:
-    /sbin/chkconfig --del mdmpd
-fi
 
 %preun
 if [ "$1" = 0 ]; then
@@ -76,22 +79,66 @@ fi
 %{_initrddir}/*
 %{_mandir}/man*/md*
 %{_sysconfdir}/cron.weekly/*
+%config(noreplace) %{_sysconfdir}/sysconfig/*
 %attr(0700,root,root) %dir /var/run/mdadm
 
 %changelog
+* Wed Nov 04 2009 Doug Ledford <dledford at redhat.com> - 3.0.3-1
+- New upstream release 3.0.3 (bz523320, bz527281)
+- Update a couple internal patches
+- Drop a patch in that was in Neil's tree for 3.0.3 that we had pulled for
+  immediate use to resolve a bug
+- Drop the endian patch because it no longer applied cleanly and all attempts
+  to reproduce the original problem as reported in bz510605 failed, even up
+  to and including downloading the specific package that was reported as
+  failing in that bug and trying to reproduce with it on both ppc and ppc64
+  hardware and with both ppc and ppc64 versions on the 64bit hardware.
+  Without a reproducer, it is impossible to determine if a rehashed patch
+  to apply to this code would actually solve the problem, so remove the patch
+  entirely since the original problem, as reported, was an easy to detect DOA
+  issue where installing to a raid array was bound to fail on reboot and so
+  we should be able to quickly and definitively tell if the problem resurfaces.
+- Update the mdmonitor init script for LSB compliance (bz527957)
+- Link from mdadm.static man page to mdadm man page (bz529314)
+- Fix a problem in the raid-check script (bz523000)
+- Fix the intel superblock handler so we can test on non-scsi block devices
+
+* Fri Oct  2 2009 Hans de Goede <hdegoede at redhat.com> - 3.0.2-1
+- New upstream release 3.0.2
+- Add a patch fixing mdadm --detail -export segfaults (bz526761, bz523862)
+- Add a patch making mdmon store its state under /dev/.mdadm for initrd
+  mdmon, rootfs mdmon handover
+- Restart mdmon from initscript (when running) for rootfs mdmon handover
+
+* Thu Sep 17 2009 Doug Ledford <dledford at redhat.com> - 3.0-4
+- Stop some mdmon segfaults (bz523860)
+
+* Tue Sep 15 2009 Doug Ledford <dledford at redhat.com> - 3.0-3
+- Update to current head of upstream git repo for various imsm related fixes
+  (fixes bz523262)
+- Fix display of metadata version in output of Detail mode
+- Add UUID output to --detail --export (bz523314)
+
+* Fri Jul 24 2009 Doug Ledford <dledford at redhat.com> - 3.0-2
+- Improved raid-check script as well as the ability to configure what devices
+  get checked
+- Endian patch for uuid generation
+
 * Mon Jun 29 2009 Doug Ledford <dledford at redhat.com> - 3.0-1
-- Update to official mdadm-3.0
-- Remove dead patches
-- Fix raid-check script to only start a check action if the device supports
-  it
-- Resolves: bz505587
+- Remove stale patches already accepted by upstream
+- Fix the raid-check script to only try and check a device if it is
+  checkable
+- Update to official mdadm-3.0 version
+- Resolves: bz505587, bz505552
 
 * Tue May 19 2009 Doug Ledford <dledford at redhat.com> - 3.0-0.devel3.7
-- Only check raid devices on weekly scrubbing, don't attempt to repair them
-
-* Fri Apr 17 2009 Doug Ledford <dledford at redhat.com> - 3.0-0.devel3.6
-- Move the mdadm.map file from /dev/md to just /dev so we don't have to
-  create a /dev/md directory in the installer
+- Move the mdadm.map file from /dev/md/ to /dev/ so the installer doesn't
+  need to precreate the /dev/md/ directory in order for incremental
+  assembly to work
+
+* Tue May 19 2009 Doug Ledford <dledford at redhat.com> - 3.0-0.devel3.6
+- Only check raid devices automatically, do not attempt to repair them
+  during the weekly data scrubbing
 
 * Fri Mar 20 2009 Doug Ledford <dledford at redhat.com> - 3.0-0.devel3.5
 - Fix a few issues with the new code to determine when a device gets to


Index: mdmonitor.init
===================================================================
RCS file: /cvs/extras/rpms/mdadm/F-11/mdmonitor.init,v
retrieving revision 1.8
retrieving revision 1.9
diff -u -p -r1.8 -r1.9
--- mdmonitor.init	19 Oct 2007 16:38:10 -0000	1.8
+++ mdmonitor.init	10 Nov 2009 13:21:36 -0000	1.9
@@ -40,6 +40,12 @@ usage ()
 
 start ()
 {
+# (Re)start mdmon to take over monitoring of mdmon started from the initrd
+    if [ -f /dev/.mdadm/*.pid ]; then
+        origprog="$prog"; prog="mdmon"
+        action $"Starting $prog: " /sbin/mdmon /proc/mdstat /
+        prog="$origprog"
+    fi
 # Make sure configuration file exists and has information we can use
 # MAILADDR or PROGRAM or both must be set in order to run mdadm --monitor
     [ -f /etc/mdadm.conf ] || return 6
@@ -78,9 +84,14 @@ condrestart ()
 
 
 case "$1" in
+    start|stop|restart|condrestart|try-restart|force-reload)
+    	[ `id -u` != "0" ] && exit 4 ;;
+esac
+
+case "$1" in
     start) start; RETVAL=$? ;;
     stop) stop; RETVAL=$? ;;
-    status) status mdadm; RETVAL=$? ;;
+    status) status -p $PIDFILE $prog ; RETVAL=$? ;;
     restart) restart; RETVAL=$? ;;
     reload) RETVAL=3 ;;
     condrestart|try-restart|force-reload) condrestart; RETVAL=$? ;;


Index: raid-check
===================================================================
RCS file: /cvs/extras/rpms/mdadm/F-11/raid-check,v
retrieving revision 1.3
retrieving revision 1.4
diff -u -p -r1.3 -r1.4
--- raid-check	29 Jun 2009 19:25:48 -0000	1.3
+++ raid-check	10 Nov 2009 13:21:36 -0000	1.4
@@ -1,7 +1,69 @@
 #!/bin/bash
+#
+# This script reads it's configuration from /etc/sysconfig/raid-check
+# Please use that file to enable/disable this script or to set the
+# type of check you wish performed.
 
-for dev in `grep "^md.*: active" /proc/mdstat | cut -f 1 -d ' '`; do
-	[ -f /sys/block/$dev/md/sync_action ] && \
-		echo "check" > /sys/block/$dev/md/sync_action
+[ -f /etc/sysconfig/raid-check ] || exit 0
+. /etc/sysconfig/raid-check
+
+[ "$ENABLED" != "yes" ] && exit 0
+
+case "$CHECK" in
+    check) ;;
+    repair) ;;
+    *) exit 0;;
+esac
+
+active_list=`grep "^md.*: active" /proc/mdstat | cut -f 1 -d ' '`
+[ -z "$active_list" ] && exit 0
+
+declare -A check
+dev_list=""
+check_list=""
+for dev in $active_list; do
+    echo $SKIP_DEVS | grep -w $dev >/dev/null 2>&1 && continue
+    if [ -f /sys/block/$dev/md/sync_action ]; then
+	# Only perform the checks on idle, healthy arrays, but delay
+	# actually writing the check field until the next loop so we
+	# don't switch currently idle arrays to active, which happens
+	# when two or more arrays are on the same physical disk
+	array_state=`cat /sys/block/$dev/md/array_state`
+	sync_action=`cat /sys/block/$dev/md/sync_action`
+	if [ "$array_state" = clean -a "$sync_action" = idle ]; then
+	    ck=""
+	    echo $REPAIR_DEVS | grep -w $dev >/dev/null 2>&1 && ck="repair"
+	    echo $CHECK_DEVS | grep -w $dev >/dev/null 2>&1 && ck="check"
+	    [ -z "$ck" ] && ck=$CHECK
+	    dev_list="$dev_list $dev"
+	    check[$dev]=$ck
+	    [ "$ck" = "check" ] && check_list="$check_list $dev"
+	fi
+    fi
+done
+[ -z "$dev_list" ] && exit 0
+
+for dev in $dev_list; do
+    echo "${check[$dev]}" > /sys/block/$dev/md/sync_action
+done
+[ -z "$check_list" ] && exit 0
+
+checking=1
+while [ $checking -ne 0 ]
+do
+	sleep 60
+	checking=0
+	for dev in $check_list; do
+	sync_action=`cat /sys/block/$dev/md/sync_action`
+		if [ "$sync_action" != "idle" ]; then
+			checking=1
+		fi
+	done
+done
+for dev in $check_list; do
+	mismatch_cnt=`cat /sys/block/$dev/md/mismatch_cnt`
+	if [ "$mismatch_cnt" -ne 0 ]; then
+		echo "WARNING: mismatch_cnt is not 0 on /dev/$dev"
+	fi
 done
 


Index: sources
===================================================================
RCS file: /cvs/extras/rpms/mdadm/F-11/sources,v
retrieving revision 1.24
retrieving revision 1.25
diff -u -p -r1.24 -r1.25
--- sources	29 Jun 2009 19:25:48 -0000	1.24
+++ sources	10 Nov 2009 13:21:36 -0000	1.25
@@ -1 +1 @@
-bcd27a1359b18e25e61593221d098f6a  mdadm-3.0.tar.bz2
+1ab786dee6c65c68ea74199788bf88c7  mdadm-3.0.3.tar.bz2




More information about the fedora-extras-commits mailing list