From: Lennart Poettering Date: Tue, 4 Jan 2011 22:42:58 +0000 (+0100) Subject: readahead: ignore if files are removed during collection or before replay X-Git-Tag: v16~20 X-Git-Url: https://err.no/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=a78899f541b944dd02fe581b1c3230eadccad1ba;p=systemd readahead: ignore if files are removed during collection or before replay --- diff --git a/src/readahead-collect.c b/src/readahead-collect.c index a9f544dd..ac46c7b3 100644 --- a/src/readahead-collect.c +++ b/src/readahead-collect.c @@ -92,6 +92,10 @@ static int pack_file(FILE *pack, const char *fn, bool on_btrfs) { assert(fn); if ((fd = open(fn, O_RDONLY|O_CLOEXEC|O_NOATIME|O_NOCTTY|O_NOFOLLOW)) < 0) { + + if (errno == ENOENT) + return 0; + log_warning("open(%s) failed: %m", fn); r = -errno; goto finish; diff --git a/src/readahead-replay.c b/src/readahead-replay.c index ab0c8084..87f2e598 100644 --- a/src/readahead-replay.c +++ b/src/readahead-replay.c @@ -60,9 +60,12 @@ static int unpack_file(FILE *pack) { char_array_0(fn); truncate_nl(fn); - if ((fd = open(fn, O_RDONLY|O_CLOEXEC|O_NOATIME|O_NOCTTY|O_NOFOLLOW)) < 0) - log_warning("open(%s) failed: %m", fn); - else if (file_verify(fd, fn, arg_file_size_max, &st) <= 0) { + if ((fd = open(fn, O_RDONLY|O_CLOEXEC|O_NOATIME|O_NOCTTY|O_NOFOLLOW)) < 0) { + + if (errno != ENOENT) + log_warning("open(%s) failed: %m", fn); + + } else if (file_verify(fd, fn, arg_file_size_max, &st) <= 0) { close_nointr_nofail(fd); fd = -1; } @@ -136,7 +139,7 @@ static int replay(const char *root) { } if ((!(pack = fopen(pack_fn, "re")))) { - if (errno == -ENOENT) + if (errno == ENOENT) log_debug("No pack file found."); else { log_error("Failed to open pack file: %m");