sd-journal: return SD_JOURNAL_INVALIDATE only if journal files were actually deleted...
authorMichal Sekletar <msekletar@users.noreply.github.com>
Mon, 24 Apr 2017 16:33:12 +0000 (18:33 +0200)
committerLennart Poettering <lennart@poettering.net>
Mon, 24 Apr 2017 16:33:12 +0000 (18:33 +0200)
commitf934644424daa6c86fd2284fe8f33ea233ece874
tree6453ed1739fd89428bfc6b7ee18e08834e133f91
parenta45e7bb4084bade974ef2c8b40172e548478aafd
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.
src/journal/sd-journal.c