summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLennart Poettering <lennart@poettering.net>2012-03-21 23:40:51 +0100
committerLennart Poettering <lennart@poettering.net>2012-03-21 23:40:51 +0100
commit0071d9f1db6dc9a1035cf5afb81455b67ed462f6 (patch)
tree834173e4e0138e468ab301552dac70584af4acc2
parent95f77929d8d94480015cd7383a5504cf9ebf2fa5 (diff)
journal: react with immediate rotation to a couple of more errors
-rw-r--r--src/journal/journal-file.c5
-rw-r--r--src/journal/journald.c10
2 files changed, 13 insertions, 2 deletions
diff --git a/src/journal/journal-file.c b/src/journal/journal-file.c
index 474dd5ca7c..5d540a7d40 100644
--- a/src/journal/journal-file.c
+++ b/src/journal/journal-file.c
@@ -1887,7 +1887,10 @@ int journal_file_open_reliably(
char *p;
r = journal_file_open(fname, flags, mode, template, ret);
- if (r != -EBADMSG)
+ if (r != -EBADMSG && /* corrupted */
+ r != -ENODATA && /* truncated */
+ r != -EHOSTDOWN && /* other machine */
+ r != -EPROTONOSUPPORT) /* incompatible feature */
return r;
if ((flags & O_ACCMODE) == O_RDONLY)
diff --git a/src/journal/journald.c b/src/journal/journald.c
index baad3ab1ad..d27cb60ac7 100644
--- a/src/journal/journald.c
+++ b/src/journal/journald.c
@@ -609,7 +609,15 @@ retry:
else {
r = journal_file_append_entry(f, NULL, iovec, n, &s->seqnum, NULL, NULL);
- if ((r == -EBADMSG || r == -E2BIG) && !vacuumed) {
+ if ((r == -E2BIG || /* hit limit */
+ r == -EFBIG || /* hit fs limit */
+ r == -EDQUOT || /* quota hit */
+ r == -ENOSPC || /* disk full */
+ r == -EBADMSG || /* corrupted */
+ r == -ENODATA || /* truncated */
+ r == -EHOSTDOWN || /* other machine */
+ r == -EPROTONOSUPPORT) && /* unsupported feature */
+ !vacuumed) {
if (r == -E2BIG)
log_info("Allocation limit reached, rotating.");