From 5b911ddd577373dfcbd3d2dade7089ff611ea35e Mon Sep 17 00:00:00 2001 From: Erik Andersen Date: Wed, 23 Feb 2000 22:49:58 +0000 Subject: [PATCH] Fixed rebooting when init runs as /linuxrc -Erik --- Changelog | 13 +++++++------ umount.c | 4 ++++ util-linux/umount.c | 4 ++++ utility.c | 4 ++-- 4 files changed, 17 insertions(+), 8 deletions(-) diff --git a/Changelog b/Changelog index 2465d2c76..3c90ab97f 100644 --- a/Changelog +++ b/Changelog @@ -11,12 +11,13 @@ * Fixed "du" so it gives the same answers as GNU "du" (busybox du used to count hard-linked files more then once). Many thanks to Friedrich Vedder for the fix. - * Removed /proc dependancies for init and free (while maintaining exactly - the same functionality). /proc takes up 90k of kernel space, so it is - nice to avoid using it at all costs. - * init no longer tries to mount /proc (unless there is less the 1 meg free). - Use of /proc (or not) is policy that should be set up in /etc/fstab (or - in hardcoded scripts), not in init. + * Removed /proc dependancies for init and free (while maintaining + exactly the same functionality). /proc takes up 90k of kernel + space, so it is nice to avoid using it at all costs. + * init no longer tries to mount /proc (unless there is less the 1 meg + free). Use of /proc (or not) is policy that should be set up in + /etc/fstab (or in hardcoded scripts), not in init. + * Fixed rebooting when init runs as an initrd. -Erik Andersen diff --git a/umount.c b/umount.c index b58b1a08c..0f087e197 100644 --- a/umount.c +++ b/umount.c @@ -59,9 +59,13 @@ static int doRemount = FALSE; extern const char mtab_file[]; /* Defined in utility.c */ + /* These functions are here because the getmntent functions do not appear * to be re-entrant, which leads to all sorts of problems when we try to * use them recursively - randolph + * + * TODO: Perhaps switch to using Glibc's getmntent_r + * -Erik */ void mtab_read(void) { diff --git a/util-linux/umount.c b/util-linux/umount.c index b58b1a08c..0f087e197 100644 --- a/util-linux/umount.c +++ b/util-linux/umount.c @@ -59,9 +59,13 @@ static int doRemount = FALSE; extern const char mtab_file[]; /* Defined in utility.c */ + /* These functions are here because the getmntent functions do not appear * to be re-entrant, which leads to all sorts of problems when we try to * use them recursively - randolph + * + * TODO: Perhaps switch to using Glibc's getmntent_r + * -Erik */ void mtab_read(void) { diff --git a/utility.c b/utility.c index 64598fab6..0279cca56 100644 --- a/utility.c +++ b/utility.c @@ -1193,7 +1193,7 @@ extern pid_t findInitPid() for (init_pid = 1; init_pid < 65536; init_pid++) { FILE *status; - sprintf(filename, "/proc/%d/status", init_pid); + sprintf(filename, "/proc/%d/cmdline", init_pid); status = fopen(filename, "r"); if (!status) { continue; @@ -1201,7 +1201,7 @@ extern pid_t findInitPid() fgets(buffer, 256, status); fclose(status); - if ((strstr(buffer, "init\n") != NULL)) { + if ((strstr(buffer, "init") != NULL)) { return init_pid; } }