journal: delete unused function journal_file_move_to_entry_by_offset()
journal: delete unused function journal_file_skip_entry()

Its only caller is a test.
Revert "journal: optimize iteration: skip files that cannot improve current candidate entry"

This reverts commit f8b5a3b75fb55f0acb85c21424b3893c822742e9.

This optimization will be made redundant by the following patches.
Revert "journal: optimize iteration: skip whole files behind current location"

This reverts commit b7c88ab8cc7d55a43450bf3dea750f95f2e910d6.

This optimization will be made redundant by the following patches.
journal: move definition of LocationType to journal-file.h

In preparation for individual JournalFiles maintaining a location
of their own.
journal: abstract the resetting of JournalFile's location
journal: keep per-JournalFile location info during iteration

In next_beyond_location() when we find a candidate entry in a journal
file, save its location information in struct JournalFile.

The purpose of remembering the locations of candidate entries is to be
able to save work in the next iteration. This patch does only the
remembering part.

LOCATION_SEEK means the location identifies a candidate entry.
When a winner is picked from among candidates, it becomes
LOCATION_DISCRETE.
LOCATION_TAIL here signifies we've iterated the file to the end (or the
beginning in the case of reversed direction).
journal: simplify set_location()

set_location() is called from real_journal_next() when a winning entry
has been picked from among the candidates in journal files.

The location type is always set to LOCATION_DISCRETE. No need to pass
it as a parameter.
The per-JournalFile location information is already updated at this
point. No need for having the direction and offset here.
journal: compare candidate entries using JournalFiles' locations

When comparing the locations of candidate entries, we can rely on the
location information stored in struct JournalFile.
journal: remove redundant variable new_offset

The file's current_offset is already updated at this point, so let's use
it.
journal: drop unnecessary parameters of next_beyond_location()

offset is redundant, because the caller can rely on f->current_offset.
The object pointer the function saves in *ret is thrown away by the caller.
journal: optimize iteration by skipping exhausted files

If from a previous iteration we know we are at the end of a journal
file, don't bother looking into the file again. This is complicated by
the fact that the EOF does not have to be permanent (think of
"journalctl -f"). So we also check if the number of entries in the
journal file changed.

This optimization has a similar effect as "journal: optimize iteration:
skip whole files behind current location" had.
journal: optimize iteration by returning previously found candidate entry

In next_beyond_location() when the JournalFile's location type is
LOCATION_SEEK, it means there's nothing to do, because we already have
the location of the candidate entry. Do an early return. Note that now
next_beyond_location() does not anymore guarantee on return that the
entry is mapped, but previous patches made sure the caller does not
care.

This optimization is at least as good as "journal: optimize iteration:
skip files that cannot improve current candidate entry" was.

Timing results on my workstation, using:
$ time ./journalctl -q --since=2014-06-01 --until=2014-07-01 > /dev/null

Before "Revert "journal: optimize iteration: skip files that cannot
improve current candidate entry":

real    0m5.349s
user    0m5.166s
sys     0m0.181s

Now:

real    0m3.901s
user    0m3.724s
sys     0m0.176s
journal: journal_file_next_entry() does not need pointer to current Object

The current offset is sufficient information.
journal: next_with_matches() now does not need a mapped object as input

Now that journal_file_next_entry() does not need a pointer to the
current object, next_with_matches() does not need it either.
networkd: add FDB support
systemd-hwdb: introduce new tool

This pulls out the hwdb managment from udevadm into an independent tool.

The old code is left in place for backwards compatibility, and easy of
testing, but all documentation is dropped to encourage use of the new
tool instead.
path-util: fix breakage in path_is_mount_point

This fixes 2 problems introduced by 6feeeab0bc:

1) If name_to_handle_at returns ENOSYS for the child, we'll wrongly
return -ENOSYS when it returns the same for the parent. Immediately
jump to the fallback logic when we get ENOSYS.

2) If name_to_handle_at returns EOPNOTSUPP for the child but suceeds
for the parent, we'll be comparing an uninitialized value (mount_id) to
an initialized value (mount_id_parent). Initialize the mount_id
variables to invalid mount_ids to avoid this.
test-cap-list: allow mismatch in case
hwdb: Logitech, Inc. RX 300 Optical Mouse DPI data

https://bugs.freedesktop.org/show_bug.cgi?id=87456