diff options
author | Lennart Poettering <lennart@poettering.net> | 2011-01-04 23:42:58 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2011-01-04 23:42:58 +0100 |
commit | a78899f541b944dd02fe581b1c3230eadccad1ba (patch) | |
tree | aacae03f9b94e526d5ef57f1e5181a3423c0e1e2 /src | |
parent | 60b4f27794f3f3b5bd1c67b42d09eb4c21838aed (diff) |
readahead: ignore if files are removed during collection or before replay
Diffstat (limited to 'src')
-rw-r--r-- | src/readahead-collect.c | 4 | ||||
-rw-r--r-- | 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 a9f544dd3a..ac46c7b3ea 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 ab0c8084c8..87f2e598b4 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"); |