dracut/modules.d/90multipath-hostonly/module-setup.sh

54 lines
1.1 KiB
Bash
Executable File

#!/bin/bash
# called by dracut
check() {
return 255
}
# called by dracut
depends() {
echo multipath
return 0
}
# called by dracut
install() {
local _f _allow
is_mpath() {
local _dev=$1
[ -e /sys/dev/block/$_dev/dm/uuid ] || return 1
[[ $(cat /sys/dev/block/$_dev/dm/uuid) =~ mpath- ]] && return 0
return 1
}
majmin_to_mpath_dev() {
local _dev
for i in /dev/mapper/*; do
[[ $i == /dev/mapper/control ]] && continue
_dev=$(get_maj_min $i)
if [ "$_dev" = "$1" ]; then
echo $i
return
fi
done
}
add_hostonly_mpath_conf() {
is_mpath $1 && {
local _dev
_dev=$(majmin_to_mpath_dev $1)
[ -z "$_dev" ] && return
strstr "$_allow" "$_dev" && return
_allow="$_allow --allow $_dev"
}
}
[[ $hostonly ]] && {
for_each_host_dev_and_slaves_all add_hostonly_mpath_conf
[ -n "$_allow" ] && mpathconf $_allow --outfile ${initdir}/etc/multipath.conf
}
}