diff options
author | Oleksii Shevchuk <alxchk@gmail.com> | 2013-03-25 18:49:03 +0200 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2013-03-25 17:51:06 +0100 |
commit | 26687bf8a907009dedcff79346860ed41511405e (patch) | |
tree | 3c540f4decd19e85941547bddd86987d7bf44f29 /src/journal/journald-server.h | |
parent | a9602630c64791571ca37606a0a5eabfac85820a (diff) |
journal: Add sync timer to journal server
Add option to force journal sync with fsync. Default timeout is 5min.
Interval configured via SyncIntervalSec option at journal.conf. Synced
journal files will be marked as OFFLINE.
Manual sync can be performed via sending SIGUSR1.
Diffstat (limited to 'src/journal/journald-server.h')
-rw-r--r-- | src/journal/journald-server.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/src/journal/journald-server.h b/src/journal/journald-server.h index 9f50a29e50..21edd6bdaf 100644 --- a/src/journal/journald-server.h +++ b/src/journal/journald-server.h @@ -71,6 +71,7 @@ typedef struct Server { size_t buffer_size; JournalRateLimit *rate_limit; + usec_t sync_interval_usec; usec_t rate_limit_interval; unsigned rate_limit_burst; @@ -119,6 +120,9 @@ typedef struct Server { uint64_t *kernel_seqnum; struct udev *udev; + + int sync_timer_fd; + bool sync_scheduled; } Server; #define N_IOVEC_META_FIELDS 17 @@ -145,8 +149,10 @@ void server_fix_perms(Server *s, JournalFile *f, uid_t uid); bool shall_try_append_again(JournalFile *f, int r); int server_init(Server *s); void server_done(Server *s); +void server_sync(Server *s); void server_vacuum(Server *s); void server_rotate(Server *s); +int server_schedule_sync(Server *s); int server_flush_to_var(Server *s); int process_event(Server *s, struct epoll_event *ev); void server_maybe_append_tags(Server *s); |