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) <jan.steffens@gmail.com>
This commit is contained in:
Jan Alexander Steffens (heftig)
2013-03-21 23:24:38 -04:00
committed by Zbigniew Jędrzejewski-Szmek
parent 72536eb736
commit 6c142648aa
+2 -2
View File
@@ -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;