From: Lennart Poettering Date: Wed, 23 May 2012 01:51:25 +0000 (+0200) Subject: readahead: avoid running of readahead services if readahead is already done X-Git-Tag: v183~26 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=commitdiff_plain;h=08231e5142bff7ace79957835656672ac100031b;ds=inline readahead: avoid running of readahead services if readahead is already done --- 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