From 08231e5142bff7ace79957835656672ac100031b Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Wed, 23 May 2012 03:51:25 +0200 Subject: [PATCH] readahead: avoid running of readahead services if readahead is already done --- src/readahead/sd-readahead.c | 3 ++- units/systemd-readahead-collect.service.in | 2 ++ units/systemd-readahead-replay.service.in | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/src/readahead/sd-readahead.c b/src/readahead/sd-readahead.c index a3340666d..d48cd7680 100644 --- a/src/readahead/sd-readahead.c +++ b/src/readahead/sd-readahead.c @@ -57,7 +57,8 @@ static int touch(const char *path) { mkdir("/run/systemd", 0755); mkdir("/run/systemd/readahead", 0755); - if ((fd = open(path, O_WRONLY|O_CREAT|O_CLOEXEC|O_NOCTTY, 0666)) < 0) + fd = open(path, O_WRONLY|O_CREAT|O_CLOEXEC|O_NOCTTY, 0666); + if (fd < 0) return -errno; for (;;) { diff --git a/units/systemd-readahead-collect.service.in b/units/systemd-readahead-collect.service.in index 7fe20d5c5..6ad286b29 100644 --- a/units/systemd-readahead-collect.service.in +++ b/units/systemd-readahead-collect.service.in @@ -11,6 +11,8 @@ DefaultDependencies=no Wants=systemd-readahead-done.timer Conflicts=shutdown.target Before=sysinit.target shutdown.target +ConditionFileExists=!/run/systemd/readahead/cancel +ConditionFileExists=!/run/systemd/readahead/done ConditionVirtualization=no [Service] diff --git a/units/systemd-readahead-replay.service.in b/units/systemd-readahead-replay.service.in index 6a101678c..7324ba36c 100644 --- a/units/systemd-readahead-replay.service.in +++ b/units/systemd-readahead-replay.service.in @@ -10,6 +10,7 @@ Description=Replay Read-Ahead Data DefaultDependencies=no Conflicts=shutdown.target Before=sysinit.target shutdown.target +ConditionPathExists=!/run/systemd/readahead/noreplay ConditionPathExists=/.readahead ConditionVirtualization=no -- 2.30.2