mirror of
https://github.com/systemd/systemd.git
synced 2024-11-05 06:52:22 +03:00
sd-journal: return SD_JOURNAL_INVALIDATE only if journal files were actually deleted/moved (#5580)
When caller invokes sd_journal_open() we usually open at least one directory with journal files. add_root_directory() function increments current_invalidate_counter. After sd_journal_open() returns current_invalidate_counter != last_invalidate_counter. After caller waits for journal events (e.g. waits for new messages in journal) then it usually calls sd_journal_process(). However, on first call to sd_journal_process(), function determine_change() returns SD_JOURNAL_INVALIDATE even though no journal files were deleted/moved. This is because current_invalidate_counter != last_invalidate_counter. After the fix we make sure counters has the same value before we begin processing inotify events.
This commit is contained in:
parent
a45e7bb408
commit
f934644424
@ -2424,6 +2424,7 @@ _public_ int sd_journal_process(sd_journal *j) {
|
||||
assert_return(!journal_pid_changed(j), -ECHILD);
|
||||
|
||||
j->last_process_usec = now(CLOCK_MONOTONIC);
|
||||
j->last_invalidate_counter = j->current_invalidate_counter;
|
||||
|
||||
for (;;) {
|
||||
union inotify_event_buffer buffer;
|
||||
|
Loading…
Reference in New Issue
Block a user