summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2011-01-04 23:42:58 +0100
committerLennart Poettering <lennart@poettering.net>2011-01-04 23:42:58 +0100
commita78899f541b944dd02fe581b1c3230eadccad1ba (patch)
treeaacae03f9b94e526d5ef57f1e5181a3423c0e1e2
parent60b4f27794f3f3b5bd1c67b42d09eb4c21838aed (diff)
readahead: ignore if files are removed during collection or before replay
-rw-r--r--src/readahead-collect.c4
-rw-r--r--src/readahead-replay.c11
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");