X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Freadahead-replay.c;h=cd89654f983d105e7731b9d2dd7ae4ec7a9ad7ba;hb=67d6a9abac34c2c15857c6ad459a5d381e2a7454;hp=ab0c8084c8414c73daded01ca8664565d3937f8a;hpb=de58283f71162d3e6522b67e044f8f9ee9fdf066;p=elogind.git diff --git a/src/readahead-replay.c b/src/readahead-replay.c index ab0c8084c..cd89654f9 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 && errno != EPERM && errno != EACCES) + 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"); @@ -343,6 +346,11 @@ int main(int argc, char*argv[]) { return 0; } + if (detect_virtualization(NULL) > 0) { + log_info("Disabling readahead replay due to execution in virtualized environment."); + return 0; + } + if (!(shared = shared_get())) return 1;