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 fullv203
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 6eb905e05..38499a688 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 1b5a22b12..88163c011 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) { |