fsck: remove distro specific hacks from fsck/quotacheck

Move forcefsck file checks under a HAVE_SYSV_COMPAT #ifdef, and warn if this is used.
This commit is contained in:
Lennart Poettering 2013-01-04 22:00:46 +01:00
parent 660ddc72f6
commit 32f992a514
2 changed files with 22 additions and 10 deletions

View file

@ -128,11 +128,14 @@ static int parse_proc_cmdline(void) {
arg_skip = true;
else if (startswith(w, "fsck"))
log_warning("Invalid fsck parameter. Ignoring.");
#if defined(TARGET_FEDORA) || defined(TARGET_MANDRIVA) || defined(TARGET_MAGEIA)
else if (strneq(w, "fastboot", l))
#ifdef HAVE_SYSV_COMPAT
else if (strneq(w, "fastboot", l)) {
log_error("Please pass 'fsck.mode=skip' rather than 'fastboot' on the kernel command line.");
arg_skip = true;
else if (strneq(w, "forcefsck", l))
} else if (strneq(w, "forcefsck", l)) {
log_error("Please pass 'fsck.mode=force' rather than 'forcefsck' on the kernel command line.");
arg_force = true;
}
#endif
}
@ -141,11 +144,17 @@ static int parse_proc_cmdline(void) {
}
static void test_files(void) {
if (access("/fastboot", F_OK) >= 0)
#ifdef HAVE_SYSV_COMPAT
if (access("/fastboot", F_OK) >= 0) {
log_error("Please pass 'fsck.mode=skip' on the kernel command line rather than creating /fastboot on the root file system.");
arg_skip = true;
}
if (access("/forcefsck", F_OK) >= 0)
if (access("/forcefsck", F_OK) >= 0) {
log_error("Please pass 'fsck.mode=force' on the kernel command line rather than creating /forcefsck on the root file system.");
arg_force = true;
}
#endif
if (access("/run/systemd/show-status", F_OK) >= 0 || plymouth_running())
arg_show_progress = true;

View file

@ -54,9 +54,11 @@ static int parse_proc_cmdline(void) {
arg_skip = true;
else if (startswith(w, "quotacheck"))
log_warning("Invalid quotacheck parameter. Ignoring.");
#if defined(TARGET_FEDORA) || defined(TARGET_MANDRIVA) || defined(TARGET_MAGEIA)
else if (strneq(w, "forcequotacheck", l))
#ifdef HAVE_SYSV_COMPAT
else if (strneq(w, "forcequotacheck", l)) {
log_error("Please use 'quotacheck.mode=force' rather than 'forcequotacheck' on the kernel command line.");
arg_force = true;
}
#endif
}
@ -65,10 +67,11 @@ static int parse_proc_cmdline(void) {
}
static void test_files(void) {
#if defined(TARGET_FEDORA) || defined(TARGET_MANDRIVA) || defined(TARGET_MAGEIA)
/* This exists only on Fedora, Mandriva or Mageia */
if (access("/forcequotacheck", F_OK) >= 0)
#ifdef HAVE_SYSV_COMPAT
if (access("/forcequotacheck", F_OK) >= 0) {
log_error("Please pass 'quotacheck.mode=force' on the kernel command line rather than creating /forcequotacheck on the root file system.");
arg_force = true;
}
#endif
}