chiark / gitweb /
Revert "journal: do not check for number of files"
[elogind.git] / src / journal / sd-journal.c
index 89cab3733128d351901690b2a9d8c45f71dabcbb..9bc426faf80cbcd1d9ae534248b3877804a3d0e8 100644 (file)
@@ -43,7 +43,7 @@
 #include "replace-var.h"
 #include "fileio.h"
 
-#define JOURNAL_FILES_MAX 1024
+#define JOURNAL_FILES_MAX 7168
 
 #define JOURNAL_FILES_RECHECK_USEC (2 * USEC_PER_SEC)
 
@@ -723,13 +723,13 @@ static int next_beyond_location(sd_journal *j, JournalFile *f, direction_t direc
         assert(j);
         assert(f);
 
-        /* If we hit EOF before, recheck if any new entries arrived. */
-        n_entries = le64toh(f->header->n_entries);
-        if (f->location_type == LOCATION_TAIL && n_entries == f->last_n_entries)
-                return 0;
-        f->last_n_entries = n_entries;
-
         if (f->last_direction == direction && f->current_offset > 0) {
+                /* If we hit EOF before, recheck if any new entries arrived. */
+                n_entries = le64toh(f->header->n_entries);
+                if (f->location_type == LOCATION_TAIL && n_entries == f->last_n_entries)
+                        return 0;
+                f->last_n_entries = n_entries;
+
                 /* LOCATION_SEEK here means we did the work in a previous
                  * iteration and the current location already points to a
                  * candidate entry. */
@@ -2188,11 +2188,11 @@ _public_ int sd_journal_process(sd_journal *j) {
         j->last_process_usec = now(CLOCK_MONOTONIC);
 
         for (;;) {
-                uint8_t buffer[INOTIFY_EVENT_MAX] _alignas_(struct inotify_event);
+                union inotify_event_buffer buffer;
                 struct inotify_event *e;
                 ssize_t l;
 
-                l = read(j->inotify_fd, buffer, sizeof(buffer));
+                l = read(j->inotify_fd, &buffer, sizeof(buffer));
                 if (l < 0) {
                         if (errno == EAGAIN || errno == EINTR)
                                 return got_something ? determine_change(j) : SD_JOURNAL_NOP;