X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=blobdiff_plain;f=src%2Fjournal%2Fjournal-vacuum.c;h=731f6c770f8938ae9982ea7573eed70d9f00a976;hb=f2d88580b50e3c173dcc2838f92fa85291bc5495;hp=22c9cfcd526a02e78574e304ff20f8a95a0fcf1e;hpb=fb0951b02ebf51a93acf12721d8857d31ce57ba3;p=elogind.git diff --git a/src/journal/journal-vacuum.c b/src/journal/journal-vacuum.c index 22c9cfcd5..731f6c770 100644 --- a/src/journal/journal-vacuum.c +++ b/src/journal/journal-vacuum.c @@ -243,6 +243,7 @@ int journal_directory_vacuum( have_seqnum = false; } else + /* We do not vacuum active files or unknown files! */ continue; patch_realtime(directory, de->d_name, &st, &realtime); @@ -291,7 +292,12 @@ int journal_directory_vacuum( if (unlinkat(dirfd(d), list[i].filename, 0) >= 0) { log_debug("Deleted archived journal %s/%s.", directory, list[i].filename); - sum -= list[i].usage; + + if ((uint64_t) list[i].usage > sum) + sum -= list[i].usage; + else + sum = 0; + } else if (errno != ENOENT) log_warning("Failed to delete %s/%s: %m", directory, list[i].filename); }