From 3b2d5b02ae231f1d3eb0d96eb980155d7797304e Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Tue, 24 Apr 2012 13:12:29 +0200 Subject: [PATCH] readahead: rather than checking for virtualization in the C code, use ConditionVirtualization= in the unit --- TODO | 2 ++ src/readahead/readahead-collect.c | 16 +++++++++------- src/readahead/readahead-replay.c | 11 ++++------- units/systemd-readahead-collect.service.in | 1 + units/systemd-readahead-replay.service.in | 1 + 5 files changed, 17 insertions(+), 14 deletions(-) diff --git a/TODO b/TODO index e38c1105..3683e6a5 100644 --- a/TODO +++ b/TODO @@ -21,6 +21,8 @@ Bugfixes: Features: +* fedora: make sshd and pam_loginuid work in nspawn containers + * fix utmp for console logins in containers * Add pretty name for seats in logind diff --git a/src/readahead/readahead-collect.c b/src/readahead/readahead-collect.c index 3e91d5c2..008ede39 100644 --- a/src/readahead/readahead-collect.c +++ b/src/readahead/readahead-collect.c @@ -660,11 +660,17 @@ int main(int argc, char *argv[]) { umask(0022); - if ((r = parse_argv(argc, argv)) <= 0) + r = parse_argv(argc, argv); + if (r <= 0) return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS; root = optind < argc ? argv[optind] : "/"; + /* Skip this step on read-only media. Note that we check the + * underlying block device here, not he read-only flag of the + * file system on top, since that one is most likely mounted + * read-only anyway at boot, even if the underlying block + * device is theoretically writable. */ if (fs_on_read_only(root) > 0) { log_info("Disabling readahead collector due to read-only media."); return 0; @@ -675,12 +681,8 @@ int main(int argc, char *argv[]) { return 0; } - if (detect_virtualization(NULL) > 0) { - log_info("Disabling readahead collector due to execution in virtualized environment."); - return 0; - } - - if (!(shared = shared_get())) + shared = shared_get(); + if (!shared) return 1; shared->collect = getpid(); diff --git a/src/readahead/readahead-replay.c b/src/readahead/readahead-replay.c index 7c263f6e..f91020e8 100644 --- a/src/readahead/readahead-replay.c +++ b/src/readahead/readahead-replay.c @@ -350,7 +350,8 @@ int main(int argc, char*argv[]) { umask(0022); - if ((r = parse_argv(argc, argv)) <= 0) + r = parse_argv(argc, argv); + if (r <= 0) return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS; root = optind < argc ? argv[optind] : "/"; @@ -360,12 +361,8 @@ int main(int argc, char*argv[]) { return 0; } - if (detect_virtualization(NULL) > 0) { - log_info("Disabling readahead replay due to execution in virtualized environment."); - return 0; - } - - if (!(shared = shared_get())) + shared = shared_get(); + if (!shared) return 1; shared->replay = getpid(); diff --git a/units/systemd-readahead-collect.service.in b/units/systemd-readahead-collect.service.in index 63840b91..c5e1d527 100644 --- a/units/systemd-readahead-collect.service.in +++ b/units/systemd-readahead-collect.service.in @@ -11,6 +11,7 @@ DefaultDependencies=no Wants=systemd-readahead-done.timer Conflicts=shutdown.target Before=sysinit.target shutdown.target +ConditionVirtualization=no [Service] Type=notify diff --git a/units/systemd-readahead-replay.service.in b/units/systemd-readahead-replay.service.in index ad27395d..7387ebac 100644 --- a/units/systemd-readahead-replay.service.in +++ b/units/systemd-readahead-replay.service.in @@ -11,6 +11,7 @@ DefaultDependencies=no Conflicts=shutdown.target Before=sysinit.target shutdown.target ConditionPathExists=/.readahead +ConditionVirtualization=no [Service] Type=notify -- 2.39.5