diff options
author | Lennart Poettering <lennart@poettering.net> | 2013-05-07 01:09:33 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2013-05-07 01:10:05 +0200 |
commit | 253f59dff9c93ee1d2c33444b5715e42bc1c6889 (patch) | |
tree | ee5c06748b04ff31fc187741000d4e47154b4958 | |
parent | b82eed9af95668ab38cac33c7996e4d665f8709a (diff) |
journald: be more careful when we try to flush the runtime journal to disk and the disk is close to being fullsystemd/v203
Bump the minimal size of the journal so that we can be sure creating the
journal file will always succeed. Previously the minimum size was
smaller than a empty jounral file...
-rw-r--r-- | src/journal/journal-file.c | 2 | ||||
-rw-r--r-- | src/journal/journald-server.c | 6 |
2 files changed, 7 insertions, 1 deletions
diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c index 6eb905e05e..38499a6881 100644 --- a/src/journal/journal-file.c +++ b/src/journal/journal-file.c @@ -44,7 +44,7 @@ #define COMPRESSION_SIZE_THRESHOLD (512ULL) /* This is the minimum journal file size */ -#define JOURNAL_FILE_SIZE_MIN (64ULL*1024ULL) /* 64 KiB */ +#define JOURNAL_FILE_SIZE_MIN (4ULL*1024ULL*1024ULL) /* 4 MiB */ /* These are the lower and upper bounds if we deduce the max_use value * from the file system size */ diff --git a/src/journal/journald-server.c b/src/journal/journald-server.c index 1b5a22b122..88163c0116 100644 --- a/src/journal/journald-server.c +++ b/src/journal/journald-server.c @@ -938,6 +938,12 @@ int server_flush_to_var(Server *s) { server_rotate(s); server_vacuum(s); + if (!s->system_journal) { + log_notice("Didn't flush runtime journal since rotation of system journal wasn't successful."); + r = -EIO; + goto finish; + } + log_debug("Retrying write."); r = journal_file_copy_entry(f, s->system_journal, o, f->current_offset, NULL, NULL, NULL); if (r < 0) { |