journal: react with immediate rotation to a couple of more errors

This commit is contained in:
Lennart Poettering 2012-03-21 23:40:51 +01:00
parent 95f77929d8
commit 0071d9f1db
2 changed files with 13 additions and 2 deletions

View file

@ -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)

View file

@ -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.");