check_block_and_slaves looks at slaves but not parents.
[[ -b /dev/block/$2 ]] || return 1 # Not a block device? So sorry.
"$1" $2 && return
check_vol_slaves "$@" && return 0
+ if [[ -f "/sys/dev/block/$2/../dev" ]]; then
+ check_block_and_slaves $1 $(cat "/sys/dev/block/$2/../dev") && return 0
+ fi
[[ -d /sys/dev/block/$2/slaves ]] || return 1
for x in /sys/dev/block/$2/slaves/*/dev; do
[[ -f $x ]] || continue
. $dracutfunctions
[[ $debug ]] && set -x
-is_mdraid() { get_fs_type /dev/block/$1 |egrep -q '(linux|isw)_raid'; }
+is_mdraid() { [[ -d "/sys/dev/block/$1/md" ]]; }
[[ $1 = '-h' ]] && {
rootdev=$(find_root_block_device)
check_block_and_slaves is_mdraid "$rootdev" || exit 1
else
# root is not on a block device, use the shotgun approach
- blkid | grep -q linux_raid || exit 1
+ blkid | egrep -q '(linux|isw)_raid' || exit 1
fi
}