From a78899f541b944dd02fe581b1c3230eadccad1ba Mon Sep 17 00:00:00 2001 From: Lennart Poettering Date: Tue, 4 Jan 2011 23:42:58 +0100 Subject: [PATCH] readahead: ignore if files are removed during collection or before replay --- src/readahead-collect.c | 4 ++++ src/readahead-replay.c | 11 +++++++---- 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/src/readahead-collect.c b/src/readahead-collect.c index a9f544dd3..ac46c7b3e 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 ab0c8084c..87f2e598b 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"); -- 2.30.2