machinectl: implement "bind" command to create additional bind mounts from host to container during runtime
update TODO
util: in make_stdio() use dup2() rather than dup3()

dup3() allows setting O_CLOEXEC which we are not interested in. However,
it also fails if called with the same fd as input and output, which is
something we don't want. Hence use dup2().

Also, we need to explicitly turn off O_CLOEXEC for the fds, in case the
input fd was O_CLOEXEC and < 3.
machinectl: add new commands for copying files from/to containers
path: follow symbolic link for parent path (2)

c0e57ba9e22ee937722958d8b912ade2a37f206d fixed the fallback path.
We should do the same for name_to_handle_at().
path: make the check for unsupported name_to_handle_at symmetric

If child supports, but the parent does not, or when the child does
not support, but the parent does, assume the child is a mount point.

Only if neither supports use the fallback.
load-fragment: properly unescape \;

https://bugs.freedesktop.org/show_bug.cgi?id=87393
test-unit-file: add test for semicolon escaping

https://bugs.freedesktop.org/show_bug.cgi?id=87393
core: use raw_clone instead of fork in signal handler

fork() is not async-signal-safe and calling it from the signal handler
could result in a deadlock when at_fork() handlers are called. Using
the raw clone() syscall sidesteps that problem.

The tricky part is that raise() does not work, since getpid() does not
work. Add raw_getpid() to get the real pid, and use kill() instead of
raise().

https://bugs.freedesktop.org/show_bug.cgi?id=86604
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.