X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Freadahead-collect.c;h=4ca6d74726d9ee06a59c913794fc3c84be406ea3;hb=d12d0e647a0bf83581e2dba4281a5b93b5428886;hp=75e7a2870bad679b937dadfc38757dbd6252ccf8;hpb=5b61848df2ce706b9a2915ae180bced0e9debd34;p=elogind.git diff --git a/src/readahead-collect.c b/src/readahead-collect.c index 75e7a2870..4ca6d7472 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; @@ -398,8 +402,8 @@ static int collect(const char *root) { char_array_0(fn); if ((k = readlink_malloc(fn, &p)) >= 0) { - if (startswith(p, "/tmp") || + endswith(p, " (deleted)") || hashmap_get(files, p)) /* Not interesting, or * already read */ @@ -645,6 +649,11 @@ int main(int argc, char *argv[]) { return 0; } + if (running_in_vm()) { + log_info("Disabling readahead collector due to execution in virtual machine."); + return 0; + } + if (!(shared = shared_get())) return 1;