On 01/22/15 at 03:18pm, Dave Young wrote:
On 01/15/15 at 07:27pm, Minfei Huang wrote:
The ipv6 link scope needs to append the netdevice to identify the ipv6 address.
Due to add prefix "kdump-" before ethX(commit: ba7660f) in the 2nd kernel, we should correct the mount parameter and /etc/kdump.conf to add the prefix "kdump-" before ethX, if use the ipv6 link scope.
Signed-off-by: Minfei Huang mhuang@redhat.com
dracut-module-setup.sh | 20 ++++++++++++++++++++ kdump-lib.sh | 2 +- mkdumprd | 16 +++++++++++++++- 3 files changed, 36 insertions(+), 2 deletions(-)
diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh index ff7a088..1e81b42 100755 --- a/dracut-module-setup.sh +++ b/dracut-module-setup.sh @@ -339,6 +339,25 @@ default_dump_target_install_conf()
}
+kdump_ipv6_fixup() +{
- local _srcaddr _tmp_conf=$1
- if is_ssh_dump_target; then
_srcaddr=$(get_option_value ssh)
- elif is_nfs_dump_target; then
_srcaddr=$(get_option_value nfs)
- fi
- if [ "x" != "x"$_srcaddr ] && `echo $_srcaddr | grep -q "%"`; then
local _netdev=${_srcaddr#*\%}
_netdev=${_netdev%]*}
local _pre_netdev=$(kdump_setup_ifname $_netdev)
if [ "x"$_netdev != "x"$_pre_netdev ]; then
sed -i "s#$_netdev#$_pre_netdev#" $_tmp_conf
fi
- fi
+}
#install kdump.conf and what user specifies in kdump.conf kdump_install_conf() { sed -ne '/^#/!p' /etc/kdump.conf > /tmp/$$-kdump.conf @@ -353,6 +372,7 @@ kdump_install_conf() { ;; ssh|nfs) kdump_install_net "$config_val"
kdump_ipv6_fixup "/tmp/$$-kdump.conf" ;; kdump_pre|kdump_post|extra_bins) dracut_install $config_val
diff --git a/kdump-lib.sh b/kdump-lib.sh index f24f08d..b886c5d 100755 --- a/kdump-lib.sh +++ b/kdump-lib.sh @@ -146,7 +146,7 @@ check_save_path_fs() kdump_setup_ifname() { local _ifname
- if [[ $1 =~ eth* ]]; then
- if [[ "$1" =~ eth* ]]; then _ifname="kdump-$1" else _ifname="$1"
diff --git a/mkdumprd b/mkdumprd index 4d251ba..34bed63 100644 --- a/mkdumprd +++ b/mkdumprd @@ -78,8 +78,22 @@ add_dracut_module() { add_dracut_arg "--add" "$1" }
+# The ipv6 link scope which appends the netdevice to identify the ipv6 +# address is start with prefix "fe80", so we should correct the mount +# parameter to add the prefix "kdump-" before ethX. add_dracut_mount() {
- add_dracut_arg "--mount" "$1"
- local _val="$1"
- if is_nfs_dump_target; then
if `echo "$_val" | grep -q "^\[fe80"`; then
local _prefix="${_val%%\%*}"
local _netdev="${_val#*\%}"
_netdev=$(kdump_setup_ifname "$_netdev")
_val="$_prefix"%"$_netdev"
Hi, Dave!
We can't use the sign "%" to filte the link scope ipv6, becase the mount arguments $1 contains the sign "%". So we should use other specified sign(starting with characters "fe80") to filte the ipv6.
So we can't use the way what we filte the link scope ipv6 in the dracut-kdump-setup.sh.
Thanks Minfei
fi
- fi
- add_dracut_arg "--mount" "$_val"
}
add_dracut_sshkey() {
1.9.3
kexec mailing list kexec@lists.fedoraproject.org https://lists.fedoraproject.org/mailman/listinfo/kexec
Minfei, it looks better though there's still some duplicate code between mkdumprd and dracut-module-setup.sh
Seem in module-setup.sh you are matching '%' but in mkdumprd you are matching 'fe80', is it possible to use same code?
Thanks Dave