summaryrefslogtreecommitdiffstats
path: root/modules.d/90mdraid/mdraid-waitclean.sh
blob: 9317962565d982fa4bf0916ac803299540fa18e7 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
#!/bin/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=property --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

    unset containers udevinfo
fi