chiark / gitweb /
journal: take KeepFree into account when reporting maximum size
authorDaniel Albers <daniel@lbe.rs>
Fri, 31 May 2013 12:39:34 +0000 (14:39 +0200)
committerZbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl>
Sat, 1 Jun 2013 13:15:11 +0000 (09:15 -0400)
When reporting the maximum journal size add a hint if it's limited
by KeepFree.

src/journal/journald-server.c

index da5b7258635070126acc2e2e2c44276b65f4d920..0bf557c809e3dbc056e24a0a5db330d04fdc6c63 100644 (file)
@@ -780,6 +780,9 @@ static int system_journal_open(Server *s) {
         char *fn;
         sd_id128_t machine;
         char ids[33];
         char *fn;
         sd_id128_t machine;
         char ids[33];
+        uint64_t avail;
+
+        avail = available_space(s);
 
         r = sd_id128_get_machine(&machine);
         if (r < 0)
 
         r = sd_id128_get_machine(&machine);
         if (r < 0)
@@ -821,6 +824,10 @@ static int system_journal_open(Server *s) {
                         server_driver_message(s, SD_ID128_NULL, "Allowing system journal files to grow to %s.",
                                               format_bytes(fb, sizeof(fb), s->system_metrics.max_use));
 
                         server_driver_message(s, SD_ID128_NULL, "Allowing system journal files to grow to %s.",
                                               format_bytes(fb, sizeof(fb), s->system_metrics.max_use));
 
+                        if (s->system_metrics.max_use > avail)
+                               server_driver_message(s, SD_ID128_NULL, "Journal size currently limited to %s due to SystemKeepFree.",
+                                                     format_bytes(fb, sizeof(fb), avail));
+
                 } else if (r < 0) {
 
                         if (r != -ENOENT && r != -EROFS)
                 } else if (r < 0) {
 
                         if (r != -ENOENT && r != -EROFS)
@@ -874,6 +881,10 @@ static int system_journal_open(Server *s) {
                         server_fix_perms(s, s->runtime_journal, 0);
                         server_driver_message(s, SD_ID128_NULL, "Allowing runtime journal files to grow to %s.",
                                               format_bytes(fb, sizeof(fb), s->runtime_metrics.max_use));
                         server_fix_perms(s, s->runtime_journal, 0);
                         server_driver_message(s, SD_ID128_NULL, "Allowing runtime journal files to grow to %s.",
                                               format_bytes(fb, sizeof(fb), s->runtime_metrics.max_use));
+
+                        if (s->system_metrics.max_use > avail)
+                               server_driver_message(s, SD_ID128_NULL, "Journal size currently limited to %s due to RuntimeKeepFree.",
+                                                     format_bytes(fb, sizeof(fb), avail));
                 }
         }
 
                 }
         }