From d87fb47cf30b825f547efbe7a3436040fe2a3951 Mon Sep 17 00:00:00 2001 From: Claudio Matsuoka Date: Thu, 24 Apr 2008 16:05:46 -0300 Subject: [PATCH] finit-mdv checks filesystem if CHECKFS= parameter specified Signed-off-by: Claudio Matsuoka --- Changelog | 6 +++--- finit-alt.c | 14 ++++++++++++++ 2 files changed, 17 insertions(+), 3 deletions(-) diff --git a/Changelog b/Changelog index cd69d577..2c65acd5 100644 --- a/Changelog +++ b/Changelog @@ -2,12 +2,12 @@ O.4 () - default username for finit-alt configurable in Makefile - create loopback device node in finit-alt (for squashfs) - add option to use built-in run-parts instead of /bin/run-parts -<<<<<<< HEAD:Changelog - ignore signal instead of setting to an empty handler (Metalshark) - handle pam_console permissions in finit-alt for Mandriva -======= - add services.sh example and nash-hotplug patch for Mandriva ->>>>>>> a3ad99798e6ade97a981adf5b4376e758c97b894:Changelog + - mount /proc/bus/usb in Mandriva + - finit-mdv checks filesystem if CHECKFS= parameter is specified + 0.3 (20080223) - Change poweroff method to reboot(RB_POWER_OFF) (Metalshark) diff --git a/finit-alt.c b/finit-alt.c index 15b3e3ac..93e3553b 100644 --- a/finit-alt.c +++ b/finit-alt.c @@ -62,6 +62,7 @@ THE SOFTWARE. #define REMOUNT_ROOTFS_RW #define MAKE_DEVICES #define PAM_CONSOLE +#define CHECK_FS #else /* original Eeepc distribution */ #define RANDOMSEED "/var/lib/urandom/random-seed" #define SYSROOT "/mnt" @@ -144,12 +145,25 @@ int main() * Parse kernel parameters */ if ((f = fopen("/proc/cmdline", "r")) != NULL) { + char *x; fgets(line, LINE_SIZE, f); if (strstr(line, "quiet")) { close(0); close(1); close(2); } +#ifdef CHECK_FS + if ((x = strstr(line, "CHECKFS="))) { + char *c, cmd[256]; + strncpy(cmd, "e2fsck -C -p -f ", LINE_SIZE); + c = cmd + strlen(cmd); + while (x && *x != ' ') *c++ = *x++; + system(cmd); + sync(); + sync(); + reboot(RB_AUTOBOOT); + } +#endif fclose(f); }