run a final "mdadm -IRs" after udev has settled
authorHarald Hoyer <harald@redhat.com>
Mon, 13 Jul 2009 15:43:13 +0000 (17:43 +0200)
committerHarald Hoyer <harald@redhat.com>
Mon, 13 Jul 2009 16:19:32 +0000 (18:19 +0200)
modules.d/90mdraid/61-mdadm.rules
modules.d/90mdraid/install
modules.d/90mdraid/mdraid_start.sh [new file with mode: 0755]

index 7c90628..0f2a691 100644 (file)
@@ -7,6 +7,9 @@ ACTION!="add|change", GOTO="raid_end"
 KERNEL=="md/*", GOTO="raid_end"
 
 KERNEL=="md*", IMPORT{program}="vol_id --export $tempnode"
-ENV{ID_FS_TYPE}=="linux_raid_member", RUN+="/sbin/mdadm -I $env{DEVNAME}"
+ENV{ID_FS_TYPE}=="linux_raid_member", \
+    TEST!="/tmp/.mdraid_start-%k", \
+    RUN+="/sbin/mdadm -I $env{DEVNAME}", \
+    RUN+="sh -c '>/tmp/.mdraid_start-%k; /bin/ln -s /sbin/mdraid_start /initqueue/mdraid_start.sh'"
 
 LABEL="raid_end"
index bb65469..eef6567 100755 (executable)
@@ -23,3 +23,5 @@ if [ -x  /sbin/mdmon ] ; then
     inst_hook pre-pivot 30 "$moddir/mdmon-pre-pivot.sh"
 fi 
 
+inst "$moddir/mdraid_start.sh" /sbin/mdraid_start
+
diff --git a/modules.d/90mdraid/mdraid_start.sh b/modules.d/90mdraid/mdraid_start.sh
new file mode 100755 (executable)
index 0000000..3475b7e
--- /dev/null
@@ -0,0 +1,8 @@
+#!/bin/sh
+
+if $UDEV_QUEUE_EMPTY >/dev/null 2>&1; then
+    [ -h "$job" ] && rm -f "$job"
+    # run mdadm if udev has settled
+    mdadm -IRs
+fi
+