chiark / gitweb /
tmpfiles: separate a generic item glob processing function
[elogind.git] / src / readahead-collect.c
index 913a34005e3c69f8a8c31dfa5510997e68bb9a17..eac11e7e5c160477f6c8ba61fd4d2394a67b6b97 100644 (file)
@@ -49,6 +49,7 @@
 #include "sd-daemon.h"
 #include "ioprio.h"
 #include "readahead-common.h"
+#include "virt.h"
 
 /* fixme:
  *
@@ -380,7 +381,17 @@ static int collect(const char *root) {
 
                 if ((n = read(fanotify_fd, &data, sizeof(data))) < 0) {
 
-                        if (errno == EINTR || errno == EAGAIN || errno == EACCES)
+                        if (errno == EINTR || errno == EAGAIN)
+                                continue;
+
+                        /* fanotify sometimes returns EACCES on read()
+                         * where it shouldn't. For now let's just
+                         * ignore it here (which is safe), but
+                         * eventually this should be
+                         * dropped when the kernel is fixed.
+                         *
+                         * https://bugzilla.redhat.com/show_bug.cgi?id=707577 */
+                        if (errno == EACCES)
                                 continue;
 
                         log_error("Failed to read event: %m");
@@ -646,6 +657,8 @@ int main(int argc, char *argv[]) {
         log_parse_environment();
         log_open();
 
+        umask(0022);
+
         if ((r = parse_argv(argc, argv)) <= 0)
                 return r < 0 ? EXIT_FAILURE : EXIT_SUCCESS;