rpms/mdadm/F-12 .cvsignore, 1.26, 1.27 mdadm-3.0-mdmon-dev-.mdadm.patch, 1.1, 1.2 mdadm.spec, 1.75, 1.76 mdmonitor.init, 1.9, 1.10 raid-check, 1.4, 1.5 sources, 1.26, 1.27 mdadm-3.0-endian-FAIL.patch, 1.1, NONE mdadm-3.0-rh526761.patch, 1.1, NONE

Doug Ledford dledford at fedoraproject.org
Thu Nov 5 22:33:09 UTC 2009


Author: dledford

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

Modified Files:
	.cvsignore mdadm-3.0-mdmon-dev-.mdadm.patch mdadm.spec 
	mdmonitor.init raid-check sources 
Removed Files:
	mdadm-3.0-endian-FAIL.patch mdadm-3.0-rh526761.patch 
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



Index: .cvsignore
===================================================================
RCS file: /cvs/extras/rpms/mdadm/F-12/.cvsignore,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -p -r1.26 -r1.27
--- .cvsignore	2 Oct 2009 19:41:35 -0000	1.26
+++ .cvsignore	5 Nov 2009 22:33:07 -0000	1.27
@@ -1 +1 @@
-mdadm-3.0.2.tar.bz2
+mdadm-3.0.3.tar.bz2

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

Index: mdadm-3.0-mdmon-dev-.mdadm.patch
===================================================================
RCS file: /cvs/extras/rpms/mdadm/F-12/mdadm-3.0-mdmon-dev-.mdadm.patch,v
retrieving revision 1.1
retrieving revision 1.2
diff -u -p -r1.1 -r1.2
--- mdadm-3.0-mdmon-dev-.mdadm.patch	2 Oct 2009 19:50:19 -0000	1.1
+++ mdadm-3.0-mdmon-dev-.mdadm.patch	5 Nov 2009 22:33:08 -0000	1.2
@@ -1,7 +1,15 @@
-diff -up mdadm-3.0/mdmon.c~ mdadm-3.0/mdmon.c
---- mdadm-3.0/mdmon.c~	2009-09-19 14:22:23.000000000 +0200
-+++ mdadm-3.0/mdmon.c	2009-09-19 14:22:23.000000000 +0200
-@@ -124,7 +124,7 @@ int make_pidfile(char *devname, int o_ex
+--- 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;
  
@@ -10,16 +18,16 @@ diff -up mdadm-3.0/mdmon.c~ mdadm-3.0/md
  
  	fd = open(path, O_RDWR|O_CREAT|o_excl, 0600);
  	if (fd < 0)
-@@ -157,7 +157,7 @@ static void try_kill_monitor(char *devna
- 	pid_t pid;
- 	struct mdstat_ent *mdstat;
+@@ -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);
+ 	fd = open(buf, O_RDONLY|O_NOATIME);
  	if (fd < 0)
- 		return;
-@@ -207,9 +207,9 @@ void remove_pidfile(char *devname)
+ 		return -1;
+@@ -217,9 +217,9 @@ void remove_pidfile(char *devname)
  	if (sigterm)
  		return;
  
@@ -31,7 +39,7 @@ diff -up mdadm-3.0/mdmon.c~ mdadm-3.0/md
  	unlink(buf);
  }
  
-@@ -223,7 +223,7 @@ int make_control_sock(char *devname)
+@@ -233,7 +233,7 @@ int make_control_sock(char *devname)
  	if (sigterm)
  		return -1;
  
@@ -40,24 +48,8 @@ diff -up mdadm-3.0/mdmon.c~ mdadm-3.0/md
  	unlink(path);
  	sfd = socket(PF_LOCAL, SOCK_STREAM, 0);
  	if (sfd < 0)
-@@ -478,11 +478,10 @@ int mdmon(char *devname, int devnum, int
- 	}
- 
- 	/* If this fails, we hope it already exists 
--	 * pid file lives in /var/run/mdadm/mdXX.pid
-+	 * pid file lives in /dev/.mdadm/mdXX.pid
- 	 */
--	mkdir("/var", 0600);
--	mkdir("/var/run", 0600);
--	mkdir("/var/run/mdadm", 0600);
-+	mkdir("/dev", 0700);
-+	mkdir("/dev/.mdadm", 0700);
- 	ignore = chdir("/");
- 	if (make_pidfile(container->devname, O_EXCL) < 0) {
- 		if (ping_monitor(container->devname) == 0) {
-diff -up mdadm-3.0/msg.c~ mdadm-3.0/msg.c
---- mdadm-3.0/msg.c~	2009-09-11 08:10:24.000000000 +0200
-+++ mdadm-3.0/msg.c	2009-09-19 15:31:27.000000000 +0200
+--- 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;
@@ -67,10 +59,9 @@ diff -up mdadm-3.0/msg.c~ mdadm-3.0/msg.
  	if (is_subarray(devname)) {
  		devname++;
  		c = strchr(devname, '/');
-diff -up mdadm-3.0/util.c~ mdadm-3.0/util.c
---- mdadm-3.0/util.c~	2009-09-19 14:22:23.000000000 +0200
-+++ mdadm-3.0/util.c	2009-09-19 15:32:22.000000000 +0200
-@@ -1206,7 +1206,7 @@ int mdmon_running(int devnum)
+--- 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;
@@ -79,7 +70,7 @@ diff -up mdadm-3.0/util.c~ mdadm-3.0/uti
  	fd = open(path, O_RDONLY, 0);
  
  	if (fd < 0)
-@@ -1226,7 +1226,7 @@ int signal_mdmon(int devnum)
+@@ -1228,7 +1228,7 @@ int signal_mdmon(int devnum)
  	char pid[10];
  	int fd;
  	int n;


Index: mdadm.spec
===================================================================
RCS file: /cvs/extras/rpms/mdadm/F-12/mdadm.spec,v
retrieving revision 1.75
retrieving revision 1.76
diff -u -p -r1.75 -r1.76
--- mdadm.spec	2 Oct 2009 19:41:36 -0000	1.75
+++ mdadm.spec	5 Nov 2009 22:33:08 -0000	1.76
@@ -1,6 +1,6 @@
 Summary:     The mdadm program controls Linux md devices (software RAID arrays)
 Name:        mdadm
-Version:     3.0.2
+Version:     3.0.3
 Release:     1%{?dist}
 Source:      http://www.kernel.org/pub/linux/utils/raid/mdadm/mdadm-%{version}.tar.bz2
 Source1:     mdmonitor.init
@@ -8,11 +8,10 @@ Source2:     raid-check
 Source3:     mdadm.rules
 Source4:     mdadm-raid-check-sysconfig
 Patch1:      mdadm-2.5.2-static.patch
-Patch2:      mdadm-3.0-endian-FAIL.patch
-Patch3:      mdadm-3.0-metadata.patch
-Patch4:      mdadm-3.0-uuid.patch
-Patch5:      mdadm-3.0-mdmon-dev-.mdadm.patch
-Patch6:      mdadm-3.0-rh526761.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
@@ -34,11 +33,10 @@ file can be used to help with some commo
 %prep
 %setup -q
 %patch1 -p1 -b .static
-%patch2 -p1 -b .endian
-%patch3 -p1 -b .metadata
-%patch4 -p1 -b .uuid
-%patch5 -p1 -b .mdmon
-%patch6 -p1 -b .rh526761
+%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
@@ -52,6 +50,7 @@ install -Dp -m 755 %{SOURCE2} %{buildroo
 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 %{buildroot}
@@ -84,6 +83,26 @@ fi
 %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)


Index: mdmonitor.init
===================================================================
RCS file: /cvs/extras/rpms/mdadm/F-12/mdmonitor.init,v
retrieving revision 1.9
retrieving revision 1.10
diff -u -p -r1.9 -r1.10
--- mdmonitor.init	2 Oct 2009 19:41:36 -0000	1.9
+++ mdmonitor.init	5 Nov 2009 22:33:08 -0000	1.10
@@ -84,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-12/raid-check,v
retrieving revision 1.4
retrieving revision 1.5
diff -u -p -r1.4 -r1.5
--- raid-check	24 Jul 2009 17:43:39 -0000	1.4
+++ raid-check	5 Nov 2009 22:33:08 -0000	1.5
@@ -15,44 +15,55 @@ case "$CHECK" in
     *) exit 0;;
 esac
 
+active_list=`grep "^md.*: active" /proc/mdstat | cut -f 1 -d ' '`
+[ -z "$active_list" ] && exit 0
+
+declare -A check
 dev_list=""
-for dev in `grep "^md.*: active" /proc/mdstat | cut -f 1 -d ' '`; do
-	echo $SKIP_DEVS | grep -w $dev >/dev/null 2>&1 && continue
-	if [ -f /sys/block/$dev/md/sync_action ]; then
-	    array_state=`cat /sys/block/$dev/md/array_state`
-	    sync_action=`cat /sys/block/$dev/md/sync_action`
-	    # Only perform the checks on idle, healthy arrays
-	    if [ "$array_state" = "clean" -a "$sync_action" = "idle" ]; then
-		check=""
-		echo $REPAIR_DEVS | grep -w $dev >/dev/null 2>&1 && \
-			check="repair"
-		echo $CHECK_DEVS | grep -w $dev >/dev/null 2>&1 \
-			&& check="check"
-		[ -z "$check" ] && check=$CHECK
-		echo "$check" > /sys/block/$dev/md/sync_action
-		[ "$check" = "check" ] && dev_list="$dev_list $dev"
-	    fi
+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
 
-if [ -n "$dev_list" ]; then
-	checking=1
-	while [ $checking -ne 0 ]
-	do
-		sleep 3
-		checking=0
-		for dev in $dev_list; do
-			sync_action=`cat /sys/block/$dev/md/sync_action`
-			if [ "$sync_action" != "idle" ]; then
-				checking=1
-			fi
-		done
-	done
-	for dev in $dev_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"
+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
-fi
+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-12/sources,v
retrieving revision 1.26
retrieving revision 1.27
diff -u -p -r1.26 -r1.27
--- sources	2 Oct 2009 19:41:36 -0000	1.26
+++ sources	5 Nov 2009 22:33:08 -0000	1.27
@@ -1 +1 @@
-38f7e3e073fcf35fc766686bd414488b  mdadm-3.0.2.tar.bz2
+1ab786dee6c65c68ea74199788bf88c7  mdadm-3.0.3.tar.bz2


--- mdadm-3.0-endian-FAIL.patch DELETED ---


--- mdadm-3.0-rh526761.patch DELETED ---




More information about the fedora-extras-commits mailing list