diff --git a/modules.d/90mdraid/61-mdadm.rules b/modules.d/90mdraid/61-mdadm.rules index 7c90628d..0f2a6919 100644 --- a/modules.d/90mdraid/61-mdadm.rules +++ b/modules.d/90mdraid/61-mdadm.rules @@ -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" diff --git a/modules.d/90mdraid/install b/modules.d/90mdraid/install index bb654690..eef65670 100755 --- a/modules.d/90mdraid/install +++ b/modules.d/90mdraid/install @@ -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 index 00000000..3475b7eb --- /dev/null +++ b/modules.d/90mdraid/mdraid_start.sh @@ -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 +