journald: don't recheck /var availability more often than 30s

This commit is contained in:
Lennart Poettering
2011-12-29 15:25:42 +01:00
parent cf244689e9
commit 54a7b863dd
2 changed files with 16 additions and 1 deletions
+15 -1
View File
@@ -51,6 +51,8 @@
#define RECHECK_AVAILABLE_SPACE_USEC (30*USEC_PER_SEC)
#define RECHECK_VAR_AVAILABLE_USEC (30*USEC_PER_SEC)
typedef struct StdoutStream StdoutStream;
typedef struct Server {
@@ -78,6 +80,8 @@ typedef struct Server {
uint64_t cached_available_space;
usec_t cached_available_space_timestamp;
uint64_t var_available_timestamp;
LIST_HEAD(StdoutStream, stdout_streams);
unsigned n_stdout_streams;
} Server;
@@ -1200,12 +1204,22 @@ static int server_flush_to_var(Server *s) {
int r;
sd_id128_t machine;
sd_journal *j;
usec_t ts;
assert(s);
if (!s->runtime_journal)
return 0;
ts = now(CLOCK_MONOTONIC);
if (s->var_available_timestamp + RECHECK_VAR_AVAILABLE_USEC > ts)
return 0;
s->var_available_timestamp = ts;
system_journal_open(s);
if (!s->system_journal || !s->runtime_journal)
if (!s->system_journal)
return 0;
r = sd_id128_get_machine(&machine);
+1
View File
@@ -36,6 +36,7 @@
* - accelerate looking for "all hostnames" and suchlike.
* - hookup with systemctl
* - handle incomplete header
* - write unit files
*
* - local deserializer
* - http server