X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fjournal-remote%2Fjournal-remote-write.c;h=df30049397dd0149106355d1d97baadeac9f3043;hb=d920e59c7df63300e5b5191d2a4be7b3baac6ea8;hp=8ede950bea17b60003d6de6a5def1623bacf5628;hpb=a812a8816c350261ab1ed6a2583fa4ec09b1eb4d;p=elogind.git diff --git a/src/journal-remote/journal-remote-write.c b/src/journal-remote/journal-remote-write.c index 8ede950be..df3004939 100644 --- a/src/journal-remote/journal-remote-write.c +++ b/src/journal-remote/journal-remote-write.c @@ -59,11 +59,9 @@ static int do_rotate(JournalFile **f, bool compress, bool seal) { int r = journal_file_rotate(f, compress, seal); if (r < 0) { if (*f) - log_error("Failed to rotate %s: %s", (*f)->path, - strerror(-r)); + log_error_errno(r, "Failed to rotate %s: %m", (*f)->path); else - log_error("Failed to create rotated journal: %s", - strerror(-r)); + log_error_errno(r, "Failed to create rotated journal: %m"); } return r; @@ -99,11 +97,8 @@ Writer* writer_free(Writer *w) { journal_file_close(w->journal); } - if (w->server) { - w->server->event_count += w->seqnum; - if (w->hashmap_key) - hashmap_remove(w->server->writers, w->hashmap_key); - } + if (w->server && w->hashmap_key) + hashmap_remove(w->server->writers, w->hashmap_key); free(w->hashmap_key); @@ -129,40 +124,47 @@ Writer* writer_ref(Writer *w) { return w; } - -int writer_write(Writer *s, +int writer_write(Writer *w, struct iovec_wrapper *iovw, dual_timestamp *ts, bool compress, bool seal) { int r; - assert(s); + assert(w); assert(iovw); assert(iovw->count > 0); - if (journal_file_rotate_suggested(s->journal, 0)) { + if (journal_file_rotate_suggested(w->journal, 0)) { log_info("%s: Journal header limits reached or header out-of-date, rotating", - s->journal->path); - r = do_rotate(&s->journal, compress, seal); + w->journal->path); + r = do_rotate(&w->journal, compress, seal); if (r < 0) return r; } - r = journal_file_append_entry(s->journal, ts, iovw->iovec, iovw->count, - &s->seqnum, NULL, NULL); - if (r >= 0) + r = journal_file_append_entry(w->journal, ts, iovw->iovec, iovw->count, + &w->seqnum, NULL, NULL); + if (r >= 0) { + if (w->server) + w->server->event_count += 1; return 1; + } - log_debug("%s: Write failed, rotating: %s", s->journal->path, strerror(-r)); - r = do_rotate(&s->journal, compress, seal); + log_debug_errno(r, "%s: Write failed, rotating: %m", w->journal->path); + r = do_rotate(&w->journal, compress, seal); if (r < 0) return r; else - log_info("%s: Successfully rotated journal", s->journal->path); + log_info("%s: Successfully rotated journal", w->journal->path); log_debug("Retrying write."); - r = journal_file_append_entry(s->journal, ts, iovw->iovec, iovw->count, - &s->seqnum, NULL, NULL); - return r < 0 ? r : 1; + r = journal_file_append_entry(w->journal, ts, iovw->iovec, iovw->count, + &w->seqnum, NULL, NULL); + if (r < 0) + return r; + + if (w->server) + w->server->event_count += 1; + return 1; }