summaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2013-05-07 01:09:33 +0200
committerLennart Poettering <lennart@poettering.net>2013-05-07 01:10:05 +0200
commit253f59dff9c93ee1d2c33444b5715e42bc1c6889 (patch)
treeee5c06748b04ff31fc187741000d4e47154b4958 /src
parentb82eed9af95668ab38cac33c7996e4d665f8709a (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...
Diffstat (limited to 'src')
-rw-r--r--src/journal/journal-file.c2
-rw-r--r--src/journal/journald-server.c6
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) {