kdump/kdump-Add-force-option-to-KDUMP_NETCONFIG.patch

110 lines
3.5 KiB
Diff
Raw Normal View History

Accepting request 757490 from home:ptesarik:branches:Kernel:kdump - kdump-calibrate-Update-values.patch: calibrate: Update values. - kdump-prefer-by-path-and-device-mapper.patch: Prefer by-path and device-mapper aliases over kernel device names (bsc#1101149, LTC#168532). - kdump-powerpc-no-reload-on-CPU-removal.patch: powerpc: Do not reload on CPU hot removal (bsc#1133407, LTC#176111). - kdump-Add-force-option-to-KDUMP_NETCONFIG.patch: Add ":force" option to KDUMP_NETCONFIG (bsc#1108919). - kdump-Add-fence_kdump_send-when-fence-agents-installed.patch: Add fence_kdump_send when fence-agents installed (bsc#1108919). - kdump-FENCE_KDUMP_SEND-variable.patch: Use var for path of fence_kdump_send and remove the unnecessary PRESCRIPT check (bsc#1108919). - kdump-Document-fence_kdump_send.patch: Document kdump behaviour for fence_kdump_send (bsc#1108919). - kdump-nss-modules.patch: Improve the handling of NSS (bsc#1021846). - kdump-skip-mounts-if-no-proc-vmcore.patch: Skip kdump-related mounts if there is no /proc/vmcore (bsc#1102252, bsc#1125011). - kdump-clean-up-kdump-mount-points.patch: Make sure that kdump mount points are cleaned up (bsc#1102252, bsc#1125011). - kdump-Clean-up-the-use-of-current-vs-boot-network-iface.patch: Clean up the use of current vs. boot network interface names (bsc#1094444, bsc#1116463, bsc#1141064). - kdump-Use-a-custom-namespace-for-physical-NICs.patch: Use a custom namespace for physical NICs (bsc#1094444, bsc#1116463, bsc#1141064). - kdump-preserve-white-space.patch: Preserve white space when removing kernel command line options (bsc#1117652). OBS-URL: https://build.opensuse.org/request/show/757490 OBS-URL: https://build.opensuse.org/package/show/Kernel:kdump/kdump?expand=0&rev=188
2019-12-17 10:11:52 +00:00
From: Petr Tesarik <ptesarik@suse.com>
Date: Tue, 20 Nov 2018 10:23:28 +0100
Subject: Add ":force" option to KDUMP_NETCONFIG
References: bsc#1108919
Upstream: merged
Git-commit 4e112a28055a57dbcdf9a72c4bdcf586296ec81a
Make it possible to force network setup in kdump initrd by adding a
":force" suffix to KDUMP_NETCONFIG. This is needed to configure
fence_kdump.
Signed-off-by: Petr Tesarik <ptesarik@suse.com>
---
doc/man/kdump.5.txt.in | 6 ++++++
init/module-setup.sh | 37 +++++++++++++++++++++----------------
sysconfig.kdump.in | 6 +++++-
3 files changed, 32 insertions(+), 17 deletions(-)
--- a/doc/man/kdump.5.txt.in
+++ b/doc/man/kdump.5.txt.in
@@ -544,6 +544,12 @@ Auto-detection cannot be used to set up
because of limitations in the implementation of the _ip=_ initrd command line
option.
+Network is configured only if needed, e.g. the dump target is on a remote
+machine, or an email notification should be sent. If network is needed by
+something else, such as a custom script used as KDUMP_PRESCRIPT or
+KDUMP_POSTSCRIPT, add a _:force_ suffix to the network configuration, for
+example "auto:force" or "eth0:dhcp4:force".
+
Use a _netdevice:mode_ string to force a specific network device to be used. A
_netdevice_ is for example "eth0". The _mode_ can be:
--- a/init/module-setup.sh
+++ b/init/module-setup.sh
@@ -19,20 +19,25 @@ kdump_needed() {
}
kdump_check_net() {
- kdump_neednet=
- for protocol in "${kdump_Protocol[@]}" ; do
- if [ "$protocol" != "file" -a "$protocol" != "srcfile" ]; then
- kdump_neednet=y
- fi
- done
+ if [ -z "$KDUMP_NETCONFIG" ]; then
+ # network explicitly disabled in configuration
+ kdump_neednet=
+ elif [ "${KDUMP_NETCONFIG%:force}" != "$KDUMP_NETCONFIG" ]; then
+ # always set up network
+ kdump_neednet=y
+ else
+ kdump_neednet=
+ for protocol in "${kdump_Protocol[@]}" ; do
+ if [ "$protocol" != "file" -a "$protocol" != "srcfile" ]; then
+ kdump_neednet=y
+ fi
+ done
- # network configuration
- if [ -n "$KDUMP_SMTP_SERVER" -a -n "$KDUMP_NOTIFICATION_TO" ]; then
- kdump_neednet=y
+ # network configuration
+ if [ -n "$KDUMP_SMTP_SERVER" -a -n "$KDUMP_NOTIFICATION_TO" ]; then
+ kdump_neednet=y
+ fi
fi
-
- # network explicitly disabled in configuration?
- [ -z "$KDUMP_NETCONFIG" ] && kdump_neednet=
}
kdump_get_fs_type() {
@@ -161,13 +166,13 @@ kdump_cmdline_zfcp() {
kdump_cmdline_ip() {
[ "$kdump_neednet" = y ] || return 0
- if [ "$KDUMP_NETCONFIG" = "auto" ] ; then
+ local _cfg="${KDUMP_NETCONFIG%:force}"
+ if [ "$_cfg" = "auto" ] ; then
kdump_host_if=default
kdump_net_mode=auto
else
- set -- ${KDUMP_NETCONFIG//:/ }
- kdump_host_if=$1
- kdump_net_mode=$2
+ kdump_host_if="${_cfg%%:*}"
+ kdump_net_mode="${_cfg#*:}"
fi
if [ "$kdump_host_if" = "default" ] ; then
--- a/sysconfig.kdump.in
+++ b/sysconfig.kdump.in
@@ -294,9 +294,13 @@ KDUMPTOOL_FLAGS=""
# that contains the network device and the mode (static, dhcp, dhcp6, auto6),
# separated by a colon. Example: "eth0:static" or "eth1:dhcp".
#
-# For static configuration, you have to add the configuration to
+# For static configuration, you may have to add the configuration to
# KDUMP_COMMANDLINE_APPEND.
#
+# By default, network is set up only if needed. Add ":force" to make sure
+# that network is always available (e.g. for use by a custom pre- or
+# post-script).
+#
# See also: kdump(5)
#
KDUMP_NETCONFIG="auto"