Fixed init so it won't hang on reboot...

This commit is contained in:
Eric Andersen 1999-11-05 04:23:05 +00:00
parent 9997685953
commit e18c75a563
2 changed files with 12 additions and 10 deletions

11
init.c
View File

@ -56,7 +56,7 @@
static char *console = VT_CONSOLE; static char *console = VT_CONSOLE;
static char *second_console = VT_SECONDARY; static char *second_console = VT_SECONDARY;
static char *log = VT_LOG; static char *log = VT_LOG;
static int kernel_version = 0;
/* try to open up the specified device */ /* try to open up the specified device */
@ -350,9 +350,9 @@ static void shutdown_system(void)
waitfor(run( swap_off_cmd, console, FALSE)); waitfor(run( swap_off_cmd, console, FALSE));
waitfor(run( umount_cmd, console, FALSE)); waitfor(run( umount_cmd, console, FALSE));
sync(); sync();
message(CONSOLE, "Skipping bdflush\r\n"); if (kernel_version > 0 && kernel_version <= 2 * 65536 + 2 * 256 + 11) {
if (get_kernel_revision() <= 2 * 65536 + 2 * 256 + 11) {
/* bdflush, kupdate not needed for kernels >2.2.11 */ /* bdflush, kupdate not needed for kernels >2.2.11 */
message(CONSOLE, "Flushing buffers.\r\n");
bdflush(1, 0); bdflush(1, 0);
sync(); sync();
} }
@ -445,9 +445,10 @@ extern int init_main(int argc, char **argv)
/* Mount /proc */ /* Mount /proc */
if (mount ("proc", "/proc", "proc", 0, 0) == 0) if (mount ("proc", "/proc", "proc", 0, 0) == 0) {
message(CONSOLE|LOG, "Mounting /proc: done.\n"); message(CONSOLE|LOG, "Mounting /proc: done.\n");
else kernel_version = get_kernel_revision();
} else
message(CONSOLE|LOG, "Mounting /proc: failed!\n"); message(CONSOLE|LOG, "Mounting /proc: failed!\n");
/* Make sure there is enough memory to do something useful. */ /* Make sure there is enough memory to do something useful. */

View File

@ -56,7 +56,7 @@
static char *console = VT_CONSOLE; static char *console = VT_CONSOLE;
static char *second_console = VT_SECONDARY; static char *second_console = VT_SECONDARY;
static char *log = VT_LOG; static char *log = VT_LOG;
static int kernel_version = 0;
/* try to open up the specified device */ /* try to open up the specified device */
@ -350,9 +350,9 @@ static void shutdown_system(void)
waitfor(run( swap_off_cmd, console, FALSE)); waitfor(run( swap_off_cmd, console, FALSE));
waitfor(run( umount_cmd, console, FALSE)); waitfor(run( umount_cmd, console, FALSE));
sync(); sync();
message(CONSOLE, "Skipping bdflush\r\n"); if (kernel_version > 0 && kernel_version <= 2 * 65536 + 2 * 256 + 11) {
if (get_kernel_revision() <= 2 * 65536 + 2 * 256 + 11) {
/* bdflush, kupdate not needed for kernels >2.2.11 */ /* bdflush, kupdate not needed for kernels >2.2.11 */
message(CONSOLE, "Flushing buffers.\r\n");
bdflush(1, 0); bdflush(1, 0);
sync(); sync();
} }
@ -445,9 +445,10 @@ extern int init_main(int argc, char **argv)
/* Mount /proc */ /* Mount /proc */
if (mount ("proc", "/proc", "proc", 0, 0) == 0) if (mount ("proc", "/proc", "proc", 0, 0) == 0) {
message(CONSOLE|LOG, "Mounting /proc: done.\n"); message(CONSOLE|LOG, "Mounting /proc: done.\n");
else kernel_version = get_kernel_revision();
} else
message(CONSOLE|LOG, "Mounting /proc: failed!\n"); message(CONSOLE|LOG, "Mounting /proc: failed!\n");
/* Make sure there is enough memory to do something useful. */ /* Make sure there is enough memory to do something useful. */