From: Jan Alexander Steffens (heftig) Date: Wed, 20 Mar 2013 20:32:05 +0000 (+0100) Subject: Fix vacuum logic error X-Git-Tag: v199~90 X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?a=commitdiff_plain;ds=sidebyside;h=6c142648aaced56ab681fcc97a71b06d588122a9;p=elogind.git Fix vacuum logic error The vacuum code used to stop vacuuming after one deletion, even when max_use was still exceeded. Also make usage a uint64_t, as the code already pretends it is one. Signed-off-by: Jan Alexander Steffens (heftig) --- diff --git a/src/journal/journal-vacuum.c b/src/journal/journal-vacuum.c index 731f6c770..4a3a5a9e6 100644 --- a/src/journal/journal-vacuum.c +++ b/src/journal/journal-vacuum.c @@ -36,7 +36,7 @@ #include "util.h" struct vacuum_info { - off_t usage; + uint64_t usage; char *filename; uint64_t realtime; @@ -293,7 +293,7 @@ int journal_directory_vacuum( if (unlinkat(dirfd(d), list[i].filename, 0) >= 0) { log_debug("Deleted archived journal %s/%s.", directory, list[i].filename); - if ((uint64_t) list[i].usage > sum) + if (list[i].usage < sum) sum -= list[i].usage; else sum = 0;