On 03/10/15 at 06:48pm, Minfei Huang wrote:
The ipv6 link scope (like: fe80::fab1:56ff:feb6:56d5%eth1) 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(a)redhat.com>
---
dracut-module-setup.sh | 20 ++++++++++++++++++++
mkdumprd | 16 +++++++++++++++-
2 files changed, 35 insertions(+), 1 deletion(-)
diff --git a/dracut-module-setup.sh b/dracut-module-setup.sh
index 4641025..349c3c1 100755
--- a/dracut-module-setup.sh
+++ b/dracut-module-setup.sh
@@ -343,6 +343,25 @@ default_dump_target_install_conf()
}
Add a description comment for the function should be good for reading.
Descript what it is the purpose of the function, it accept what type of
arguments. Give an example for an ipv6 address (before and after changing)
Otherwise the patch looks good to me..
+kdump_ipv6_netdev_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 _orig_netdev=${_srcaddr#*\%}
+ _orig_netdev=${_orig_netdev%]*}
+ local _pre_netdev=$(kdump_setup_ifname $_orig_netdev)
+ if [ "x"$_orig_netdev != "x"$_pre_netdev ]; then
+ sed -i "s#$_orig_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 > ${initdir}/tmp/$$-kdump.conf
@@ -357,6 +376,7 @@ kdump_install_conf() {
;;
ssh|nfs)
kdump_install_net "$config_val"
+ kdump_ipv6_netdev_fixup "${initdir}/tmp/$$-kdump.conf"
;;
kdump_pre|kdump_post|extra_bins)
dracut_install $config_val
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"
+ fi
+ fi
+
+ add_dracut_arg "--mount" "$_val"
}
add_dracut_sshkey() {
--
1.9.3
_______________________________________________
kexec mailing list
kexec(a)lists.fedoraproject.org
https://lists.fedoraproject.org/mailman/listinfo/kexec