journald-kmsg: introduce manager_close_kernel_seqnum() helper function

This commit is contained in:
Yu Watanabe
2025-07-16 00:24:17 +09:00
parent 61b1f7d2d3
commit 059efb97e3
4 changed files with 12 additions and 2 deletions

View File

@@ -429,6 +429,7 @@ int manager_open_kernel_seqnum(Manager *m) {
int r;
assert(m);
assert(!m->kernel_seqnum);
/* We store the seqnum we last read in an mmapped file. That way we can just use it like a variable,
* but it is persistent and automatically flushed at reboot. */
@@ -443,6 +444,13 @@ int manager_open_kernel_seqnum(Manager *m) {
return 0;
}
void manager_close_kernel_seqnum(Manager *m) {
assert(m);
manager_unmap_seqnum_file(m->kernel_seqnum, sizeof(*m->kernel_seqnum));
m->kernel_seqnum = NULL;
}
int manager_reload_dev_kmsg(Manager *m) {
int r;

View File

@@ -10,5 +10,6 @@ int manager_reload_dev_kmsg(Manager *m);
void manager_forward_kmsg(Manager *m, int priority, const char *identifier, const char *message, const struct ucred *ucred);
int manager_open_kernel_seqnum(Manager *m);
void manager_close_kernel_seqnum(Manager *m);
void dev_kmsg_record(Manager *m, char *p, size_t l);

View File

@@ -2107,7 +2107,7 @@ int manager_map_seqnum_file(
return 0;
}
static void manager_unmap_seqnum_file(void *p, size_t size) {
void manager_unmap_seqnum_file(void *p, size_t size) {
assert(size > 0);
if (!p)
@@ -2599,7 +2599,7 @@ Manager* manager_free(Manager *m) {
ordered_hashmap_free(m->ratelimit_groups_by_id);
manager_unmap_seqnum_file(m->seqnum, sizeof(*m->seqnum));
manager_unmap_seqnum_file(m->kernel_seqnum, sizeof(*m->kernel_seqnum));
manager_close_kernel_seqnum(m);
free(m->buffer);
free(m->cgroup_root);

View File

@@ -192,3 +192,4 @@ int manager_start_or_stop_idle_timer(Manager *m);
int manager_reload_journals(Manager *m);
int manager_map_seqnum_file(Manager *m, const char *fname, size_t size, void **ret);
void manager_unmap_seqnum_file(void *p, size_t size);