chiark / gitweb /
journald: bring max coredump size in sync with max entry size
[elogind.git] / src / journal / journal-vacuum.c
index 22c9cfcd526a02e78574e304ff20f8a95a0fcf1e..4a3a5a9e63c5579d3f1d3df265c6f4866315f1b2 100644 (file)
@@ -36,7 +36,7 @@
 #include "util.h"
 
 struct vacuum_info {
-        off_t usage;
+        uint64_t usage;
         char *filename;
 
         uint64_t realtime;
@@ -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 (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);
         }