]> git.ipfire.org Git - thirdparty/dracut.git/commitdiff
90mdraid/mdraid-waitclean.sh: add rd.md.waitclean parameter
authorHarald Hoyer <harald@redhat.com>
Fri, 2 Dec 2011 11:21:32 +0000 (12:21 +0100)
committerHarald Hoyer <harald@redhat.com>
Fri, 2 Dec 2011 12:03:02 +0000 (13:03 +0100)
add rd.md.waitclean parameter, which defaults to 0
https://bugzilla.redhat.com/show_bug.cgi?id=759148

dracut.kernel.7.xml
modules.d/90mdraid/mdraid-waitclean.sh

index 7cd7b81d72ca3c0efcc0c1f43f2a1fb2e4c5b5dc..59b94337d9ec1e5a366391d388676196d2f731ee 100644 (file)
@@ -357,6 +357,14 @@ This parameter can be specified multiple times.</para>
             <para>ignore mdadm.conf included in initramfs</para>
           </listitem>
         </varlistentry>
+        <varlistentry>
+          <term>
+            <envar>rd.md.waitclean</envar>=1
+          </term>
+          <listitem>
+            <para>wait for any resync, recovery, or reshape activity to finish before continuing</para>
+          </listitem>
+        </varlistentry>
         <varlistentry>
           <term>
             <envar>rd.md.uuid=<replaceable>&lt;md raid uuid&gt;</replaceable></envar>
index c062fc7401e3dbd587e583a1a1ba596f5e03672d..2f2a7535a90a72a0cec68868f5471c5dec504153 100755 (executable)
@@ -2,24 +2,25 @@
 # -*- mode: shell-script; indent-tabs-mode: nil; sh-basic-offset: 4; -*-
 # ex: ts=8 sw=4 sts=4 et filetype=sh
 
-type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
+if getargbool 0 rd.md.waitclean; then
+    type getarg >/dev/null 2>&1 || . /lib/dracut-lib.sh
+    containers=""
+    for md in /dev/md[0-9_]*; do
+        [ -b "$md" ] || continue
+        udevinfo="$(udevadm info --query=env --name=$md)"
+        strstr "$udevinfo" "DEVTYPE=partition" && continue
+        if strstr "$udevinfo" "MD_LEVEL=container"; then
+            containers="$containers $md"
+            continue
+        fi
+        info "Waiting for $md to become clean"
+        mdadm -W "$md" >/dev/null 2>&1
+    done
 
-containers=""
-for md in /dev/md[0-9_]*; do
-    [ -b "$md" ] || continue
-    udevinfo="$(udevadm info --query=env --name=$md)"
-    strstr "$udevinfo" "DEVTYPE=partition" && continue
-    if strstr "$udevinfo" "MD_LEVEL=container"; then
-        containers="$containers $md"
-        continue
-    fi
-    info "Waiting for $md to become clean"
-    mdadm -W "$md" >/dev/null 2>&1
-done
+    for md in $containers; do
+        info "Waiting for $md to become clean"
+        mdadm -W "$md" >/dev/null 2>&1
+    done
 
-for md in $containers; do
-    info "Waiting for $md to become clean"
-    mdadm -W "$md" >/dev/null 2>&1
-done
-
-unset containers udevinfo
+    unset containers udevinfo
+fi