assert(fn);
if ((fd = open(fn, O_RDONLY|O_CLOEXEC|O_NOATIME|O_NOCTTY|O_NOFOLLOW)) < 0) {
+
+ if (errno == ENOENT)
+ return 0;
+
+ if (errno == EPERM || errno == EACCES)
+ return 0;
+
log_warning("open(%s) failed: %m", fn);
r = -errno;
goto finish;
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 */
on_ssd = fs_on_ssd(root) > 0;
log_debug("On SSD: %s", yes_no(on_ssd));
- on_btrfs = statfs(root, &sfs) >= 0 && sfs.f_type == BTRFS_SUPER_MAGIC;
+ on_btrfs = statfs(root, &sfs) >= 0 && (long) sfs.f_type == (long) BTRFS_SUPER_MAGIC;
log_debug("On btrfs: %s", yes_no(on_btrfs));
asprintf(&pack_fn, "%s/.readahead", root);
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;