summaryrefslogtreecommitdiff
path: root/core/systemd/0001-Fix-vacuum-logic-error.patch
diff options
context:
space:
mode:
Diffstat (limited to 'core/systemd/0001-Fix-vacuum-logic-error.patch')
-rw-r--r--core/systemd/0001-Fix-vacuum-logic-error.patch40
1 files changed, 40 insertions, 0 deletions
diff --git a/core/systemd/0001-Fix-vacuum-logic-error.patch b/core/systemd/0001-Fix-vacuum-logic-error.patch
new file mode 100644
index 000000000..a0a6e85ee
--- /dev/null
+++ b/core/systemd/0001-Fix-vacuum-logic-error.patch
@@ -0,0 +1,40 @@
+From 6c142648aaced56ab681fcc97a71b06d588122a9 Mon Sep 17 00:00:00 2001
+From: "Jan Alexander Steffens (heftig)" <jan.steffens@gmail.com>
+Date: Wed, 20 Mar 2013 21:32:05 +0100
+Subject: [PATCH] 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>
+---
+ src/journal/journal-vacuum.c | 4 ++--
+ 1 file changed, 2 insertions(+), 2 deletions(-)
+
+diff --git a/src/journal/journal-vacuum.c b/src/journal/journal-vacuum.c
+index 731f6c7..4a3a5a9 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;
+--
+1.8.2
+