chiark
/
gitweb
/
~ianmdlvl
/
elogind.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
a99c349
)
journald: don't rotate on startup
author
Lennart Poettering
<lennart@poettering.net>
Wed, 4 Jan 2012 01:33:11 +0000
(
02:33
+0100)
committer
Lennart Poettering
<lennart@poettering.net>
Wed, 4 Jan 2012 01:33:11 +0000
(
02:33
+0100)
src/journal/journald.c
patch
|
blob
|
history
diff --git
a/src/journal/journald.c
b/src/journal/journald.c
index b42be8d7ad2788ef55d409fdb326b1c5b5dd8036..47fe6edb0cad2ac85ca42f972837551937c41595 100644
(file)
--- a/
src/journal/journald.c
+++ b/
src/journal/journald.c
@@
-306,14
+306,11
@@
static JournalFile* find_journal(Server *s, uid_t uid) {
return f;
}
return f;
}
-static void server_
vacuum
(Server *s) {
-
Iterator i
;
+static void server_
rotate
(Server *s) {
+
JournalFile *f
;
void *k;
void *k;
- char *p;
- char ids[33];
- sd_id128_t machine;
+ Iterator i;
int r;
int r;
- JournalFile *f;
log_info("Rotating...");
log_info("Rotating...");
@@
-336,6
+333,13
@@
static void server_vacuum(Server *s) {
else
hashmap_replace(s->user_journals, k, f);
}
else
hashmap_replace(s->user_journals, k, f);
}
+}
+
+static void server_vacuum(Server *s) {
+ char *p;
+ char ids[33];
+ sd_id128_t machine;
+ int r;
log_info("Vacuuming...");
log_info("Vacuuming...");
@@
-565,6
+569,7
@@
retry:
if (r == -E2BIG && !vacuumed) {
log_info("Allocation limit reached.");
if (r == -E2BIG && !vacuumed) {
log_info("Allocation limit reached.");
+ server_rotate(s);
server_vacuum(s);
vacuumed = true;
server_vacuum(s);
vacuumed = true;
@@
-1308,6
+1313,7
@@
static int server_flush_to_var(Server *s) {
log_info("Allocation limit reached.");
journal_file_post_change(s->system_journal);
log_info("Allocation limit reached.");
journal_file_post_change(s->system_journal);
+ server_rotate(s);
server_vacuum(s);
r = journal_file_copy_entry(f, s->system_journal, o, f->current_offset, NULL, NULL, NULL);
server_vacuum(s);
r = journal_file_copy_entry(f, s->system_journal, o, f->current_offset, NULL, NULL, NULL);