From 9f8fb447c11a45015d8abc39e5b3b649be765e4f Mon Sep 17 00:00:00 2001 From: Xunlei Pang Date: Mon, 6 Jun 2016 13:01:59 +0800 Subject: [PATCH] module-setup: Use get_ifcfg_filename() to get the proper ifcfg file The ifcfg file name of under "/etc/sysconfig/network-scripts/" may not be "ifcfg-". For example, for "enp0s25" we are able to generate its ifcfg like "/etc/sysconfig/network-scripts/ifcfg-enp0s25test" via network-manager. If we alway assume "ifcfg-" is there, we will got the wrong result in some cases. The issue can be resolved by using the new get_ifcfg_filename() introduced by PATCH "kdump-lib: Add get_ifcfg_filename() to get the proper ifcfg file", so we hereby change all the "ifcfg-" users to use get_ifcfg_filename(). Signed-off-by: Xunlei Pang Acked-by: Dave Young --- dracut-module-setup.sh | 23 ++++++++++++++++++++--- 1 file changed, 20 insertions(+), 3 deletions(-) diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh index 4cd7107..ecf7d3f 100755 --- a/dracut-module-setup.sh +++ b/dracut-module-setup.sh @@ -62,11 +62,24 @@ kdump_is_vlan() { [ -f /proc/net/vlan/"$1" ] } +# $1: netdev name +source_ifcfg_file() { + local ifcfg_file + + ifcfg_file=$(get_ifcfg_filename $1) + if [ -f "${ifcfg_file}" ]; then + . ${ifcfg_file} + else + dwarning "The ifcfg file of $1 is not found!" + fi +} + # $1: netdev name kdump_setup_dns() { local _nameserver _dns local _dnsfile=${initdir}/etc/cmdline.d/42dns.conf - . /etc/sysconfig/network-scripts/ifcfg-$1 + + source_ifcfg_file $1 [ -n "$DNS1" ] && echo "nameserver=$DNS1" > "$_dnsfile" [ -n "$DNS2" ] && echo "nameserver=$DNS2" >> "$_dnsfile" @@ -189,7 +202,9 @@ kdump_setup_bond() { done echo -n " bond=$_netdev:$(echo $_slaves | sed 's/,$//')" >> ${initdir}/etc/cmdline.d/42bond.conf # Get bond options specified in ifcfg - . /etc/sysconfig/network-scripts/ifcfg-$_netdev + + source_ifcfg_file $_netdev + bondoptions="$(echo :$BONDING_OPTS | sed 's/\s\+/,/')" echo "$bondoptions" >> ${initdir}/etc/cmdline.d/42bond.conf } @@ -244,7 +259,9 @@ kdump_setup_vlan() { # $1: netdev name kdump_setup_znet() { local _options="" - . /etc/sysconfig/network-scripts/ifcfg-$1 + + source_ifcfg_file $1 + for i in $OPTIONS; do _options=${_options},$i done