From 452e46dbfcaca3b6d6ce5a0e43ea445ded21ec57 Mon Sep 17 00:00:00 2001 From: Harald Hoyer Date: Fri, 2 Dec 2011 12:21:32 +0100 Subject: [PATCH] 90mdraid/mdraid-waitclean.sh: add rd.md.waitclean parameter add rd.md.waitclean parameter, which defaults to 0 https://bugzilla.redhat.com/show_bug.cgi?id=759148 --- dracut.kernel.7.xml | 8 ++++++ modules.d/90mdraid/mdraid-waitclean.sh | 39 +++++++++++++------------- 2 files changed, 28 insertions(+), 19 deletions(-) diff --git a/dracut.kernel.7.xml b/dracut.kernel.7.xml index 7cd7b81d7..59b94337d 100644 --- a/dracut.kernel.7.xml +++ b/dracut.kernel.7.xml @@ -357,6 +357,14 @@ This parameter can be specified multiple times. ignore mdadm.conf included in initramfs + + + rd.md.waitclean=1 + + + wait for any resync, recovery, or reshape activity to finish before continuing + + rd.md.uuid=<md raid uuid> diff --git a/modules.d/90mdraid/mdraid-waitclean.sh b/modules.d/90mdraid/mdraid-waitclean.sh index c062fc740..2f2a7535a 100755 --- a/modules.d/90mdraid/mdraid-waitclean.sh +++ b/modules.d/90mdraid/mdraid-waitclean.sh @@ -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 -- 2.47.3