summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--kexec/kexec.86
-rw-r--r--kexec/kexec.c17
2 files changed, 11 insertions, 12 deletions
diff --git a/kexec/kexec.8 b/kexec/kexec.8
index 24d1969..4d0c1d1 100644
--- a/kexec/kexec.8
+++ b/kexec/kexec.8
@@ -147,12 +147,10 @@ target kernel. If a capture kernel is being unloaded then specify -p with -u.
Return the version number of the installed utility.
.TP
.B \-x\ (\-\-no\-ifdown)
-Shut down the running kernel, but restore the interface on reload. (If
-this option is used, it must be one of last options specified.)
+Shut down the running kernel, but restore the interface on reload.
.TP
.B \-y\ (\-\-no\-sync)
-Shut down the running kernel, but skip syncing the filesystems. (If
-this option is used, it must be one of last options specified.)
+Shut down the running kernel, but skip syncing the filesystems.
.TP
.BI \-\-mem\-min= addr
Specify the lowest memory address
diff --git a/kexec/kexec.c b/kexec/kexec.c
index 7123460..8ce6885 100644
--- a/kexec/kexec.c
+++ b/kexec/kexec.c
@@ -913,11 +913,7 @@ void usage(void)
" -f, --force Force an immediate kexec,\n"
" don't call shutdown.\n"
" -x, --no-ifdown Don't bring down network interfaces.\n"
- " (if used, must be one of last options\n"
- " specified)\n"
" -y, --no-sync Don't sync filesystems before kexec.\n"
- " (if used, must be one of last options\n"
- " specified)\n"
" -l, --load Load the new kernel into the\n"
" current kernel.\n"
" -p, --load-panic Load the new kernel for use on panic.\n"
@@ -1170,8 +1166,8 @@ int main(int argc, char *argv[])
int do_exec = 0;
int do_load_jump_back_helper = 0;
int do_shutdown = 1;
- int do_sync = 1;
- int do_ifdown = 0;
+ int do_sync = 1, skip_sync = 0;
+ int do_ifdown = 0, skip_ifdown = 0;
int do_unload = 0;
int do_reuse_initrd = 0;
int do_kexec_file_syscall = 0;
@@ -1219,10 +1215,10 @@ int main(int argc, char *argv[])
case OPT_DEBUG:
kexec_debug = 1;
case OPT_NOIFDOWN:
- do_ifdown = 0;
+ skip_ifdown = 1;
break;
case OPT_NOSYNC:
- do_sync = 0;
+ skip_sync = 1;
break;
case OPT_FORCE:
do_load = 1;
@@ -1321,6 +1317,11 @@ int main(int argc, char *argv[])
}
}
+ if (skip_ifdown)
+ do_ifdown = 0;
+ if (skip_sync)
+ do_sync = 0;
+
if (do_load && (kexec_flags & KEXEC_ON_CRASH) &&
!is_crashkernel_mem_reserved()) {
die("Memory for crashkernel is not reserved\n"