X-Git-Url: https://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fquotacheck.c;h=b6648b836960b800e4065845640c487e44bb5aea;hp=da2da3b2e05adca5ddcc79ec6452ab0d0e444e51;hb=304b9f30781b8625c1f84fd27205f2707d4843b1;hpb=0a27cf3f32403f48059396cb43ad25d0a12ef64b diff --git a/src/quotacheck.c b/src/quotacheck.c index da2da3b2e..b6648b836 100644 --- a/src/quotacheck.c +++ b/src/quotacheck.c @@ -26,6 +26,7 @@ #include #include "util.h" +#include "virt.h" static bool arg_skip = false; static bool arg_force = false; @@ -35,6 +36,9 @@ static int parse_proc_cmdline(void) { int r; size_t l; + if (detect_container(NULL) > 0) + return 0; + if ((r = read_one_line_file("/proc/cmdline", &line)) < 0) { log_warning("Failed to read /proc/cmdline, ignoring: %s", strerror(-r)); return 0; @@ -50,7 +54,7 @@ static int parse_proc_cmdline(void) { arg_skip = true; else if (startswith(w, "quotacheck.mode")) log_warning("Invalid quotacheck.mode= parameter. Ignoring."); -#if defined(TARGET_FEDORA) || defined(TARGET_MANDRIVA) +#if defined(TARGET_FEDORA) || defined(TARGET_MANDRIVA) || defined(TARGET_MAGEIA) else if (strneq(w, "forcequotacheck", l)) arg_force = true; #endif @@ -61,8 +65,8 @@ static int parse_proc_cmdline(void) { } static void test_files(void) { -#if defined(TARGET_FEDORA) || defined(TARGET_MANDRIVA) - /* This exists only on Fedora or Mandriva */ +#if defined(TARGET_FEDORA) || defined(TARGET_MANDRIVA) || defined(TARGET_MAGEIA) + /* This exists only on Fedora, Mandriva or Mageia */ if (access("/forcequotacheck", F_OK) >= 0) arg_force = true; #endif @@ -83,10 +87,12 @@ int main(int argc, char *argv[]) { return EXIT_FAILURE; } - log_set_target(LOG_TARGET_SYSLOG_OR_KMSG); + log_set_target(LOG_TARGET_AUTO); log_parse_environment(); log_open(); + umask(0022); + parse_proc_cmdline(); test_files(); @@ -94,7 +100,7 @@ int main(int argc, char *argv[]) { if (arg_skip) return 0; - if (access("/dev/.run/systemd/quotacheck", F_OK) < 0) + if (access("/run/systemd/quotacheck", F_OK) < 0) return 0; }