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
parentNEWS: typo fix (diff)
downloadsystemd-203.tar.gz
systemd-203.tar.bz2
systemd-203.zip
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...
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 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) {