Compare commits

..

No commits in common. "f56a9cbf9c20cd798258d3db302d51bf21458b38" and "b9cbb08e0a35070d57721cd5bf810659a0b80f5e" have entirely different histories.

10 changed files with 27 additions and 24 deletions

4
NEWS
View File

@ -493,8 +493,8 @@ CHANGES WITH 247 in spe:
* The SystemCallErrorNumber= unit file setting now accepts the new * The SystemCallErrorNumber= unit file setting now accepts the new
"kill" and "log" actions, in addition to arbitrary error number "kill" and "log" actions, in addition to arbitrary error number
specifications as before. If "kill" the processes are killed on the specifications as before. If "kill" the the processes are killed on
event, if "log" the offending system call is audit logged. the event, if "log" the offending system call is audit logged.
* A new SystemCallLog= unit file setting has been added that accepts a * A new SystemCallLog= unit file setting has been added that accepts a
list of system calls that shall be logged about (audit). list of system calls that shall be logged about (audit).

View File

@ -77,7 +77,7 @@ manager, please consider supporting the following interfaces.
container instance) or creating one scope unit for each container instance container instance) or creating one scope unit for each container instance
via systemd's transient unit API (in case you have one container manager via systemd's transient unit API (in case you have one container manager
that manages all instances. Either way, make sure to set `Delegate=yes` in that manages all instances. Either way, make sure to set `Delegate=yes` in
it. This ensures that the unit you created will be part of all cgroup it. This ensures that that the unit you created will be part of all cgroup
controllers (or at least the ones systemd understands). The latter may also controllers (or at least the ones systemd understands). The latter may also
be done via `systemd-machined`'s `CreateMachine()` API. Make sure to use the be done via `systemd-machined`'s `CreateMachine()` API. Make sure to use the
cgroup path systemd put your process in for all operations of the container. cgroup path systemd put your process in for all operations of the container.
@ -364,7 +364,7 @@ If you write software that wants to detect whether it is run in a container,
please check `/proc/1/environ` and look for the `container=` environment please check `/proc/1/environ` and look for the `container=` environment
variable. Do not assume the environment variable is inherited down the process variable. Do not assume the environment variable is inherited down the process
tree. It generally is not. Hence check the environment block of PID 1, not your tree. It generally is not. Hence check the environment block of PID 1, not your
own. Note though that this file is only accessible to root. systemd hence early own. Note though that that file is only accessible to root. systemd hence early
on also copies the value into `/run/systemd/container`, which is readable for on also copies the value into `/run/systemd/container`, which is readable for
everybody. However, that's a systemd-specific interface and other init systems everybody. However, that's a systemd-specific interface and other init systems
are unlikely to do the same. are unlikely to do the same.

View File

@ -517,7 +517,7 @@ _packed_ struct HashTableObject {
``` ```
The structure of both DATA_HASH_TABLE and FIELD_HASH_TABLE objects are The structure of both DATA_HASH_TABLE and FIELD_HASH_TABLE objects are
identical. They implement a simple hash table, with each cell containing identical. They implement a simple hash table, which each cell containing
offsets to the head and tail of the singly linked list of the DATA and FIELD offsets to the head and tail of the singly linked list of the DATA and FIELD
objects, respectively. DATA's and FIELD's next_hash_offset field are used to objects, respectively. DATA's and FIELD's next_hash_offset field are used to
chain up the objects. Empty cells have both offsets set to 0. chain up the objects. Empty cells have both offsets set to 0.
@ -651,15 +651,15 @@ look up the FIELD object and follow the chain of links to all DATA it includes.
### Writing ### Writing
When an entry is appended to the journal, for each of its data fields the data When an entry is appended to the journal for each of its data fields the data
hash table should be checked. If the data field does not yet exist in the file, hash table should be checked. If the data field does not yet exist in the file
it should be appended and added to the data hash table. When a data field's data it should be appended and added to the data hash table. When a field data
object is added, the field hash table should be checked for the field name of object is added the field hash table should be checked for the field name of
the data field, and a field object be added if necessary. After all data fields the data field, and a field object be added if necessary. After all data fields
(and recursively all field names) of the new entry are appended and linked up (and recursively all field names) of the new entry are appended and linked up
in the hashtables, the entry object should be appended and linked up too. in the hashtables the entry object should be appended and linked up too.
At regular intervals a tag object should be written if sealing is enabled (see In regular intervals a tag object should be written if sealing is enabled (see
above). Before the file is closed a tag should be written too, to seal it off. above). Before the file is closed a tag should be written too, to seal it off.
Before writing an object, time and disk space limits should be checked and Before writing an object, time and disk space limits should be checked and

View File

@ -301,8 +301,8 @@ s - Service VLAN, m - Two-port MAC Relay (TPMR)
</term> </term>
<listitem><para>Reconfigure network interfaces. Takes interface name or index number. Note that <listitem><para>Reconfigure network interfaces. Takes interface name or index number. Note that
this does not reload <filename>.netdev</filename> or <filename>.network</filename> this does not reload <filename>.netdev</filename> or <filename>.network</filename>
corresponding to the specified interface. So, if you edit config files, it is necessary to call corresponding to the the specified interface. So, if you edit config files, it is necessary to
<command>networkctl reload</command> first to apply new settings.</para></listitem> call <command>networkctl reload</command> first to apply new settings.</para></listitem>
</varlistentry> </varlistentry>
<varlistentry> <varlistentry>

View File

@ -57,7 +57,6 @@
<funcprototype> <funcprototype>
<funcdef>int sd_bus_message_append_array_space</funcdef> <funcdef>int sd_bus_message_append_array_space</funcdef>
<paramdef>sd_bus_message *<parameter>m</parameter></paramdef>
<paramdef>char <parameter>type</parameter></paramdef> <paramdef>char <parameter>type</parameter></paramdef>
<paramdef>size_t <parameter>size</parameter></paramdef> <paramdef>size_t <parameter>size</parameter></paramdef>
<paramdef>void **<parameter>ptr</parameter></paramdef> <paramdef>void **<parameter>ptr</parameter></paramdef>

View File

@ -1103,7 +1103,7 @@ int copy_file_atomic_full(
assert(from); assert(from);
assert(to); assert(to);
/* We try to use O_TMPFILE here to create the file if we can. Note that this only works if COPY_REPLACE is not /* We try to use O_TMPFILE here to create the file if we can. Note that that only works if COPY_REPLACE is not
* set though as we need to use linkat() for linking the O_TMPFILE file into the file system but that system * set though as we need to use linkat() for linking the O_TMPFILE file into the file system but that system
* call can't replace existing files. Hence, if COPY_REPLACE is set we create a temporary name in the file * call can't replace existing files. Hence, if COPY_REPLACE is set we create a temporary name in the file
* system right-away and unconditionally which we then can renameat() to the right name after we completed * system right-away and unconditionally which we then can renameat() to the right name after we completed

View File

@ -248,8 +248,8 @@ int khash_put(khash *h, const void *buffer, size_t size) {
int khash_put_iovec(khash *h, const struct iovec *iovec, size_t n) { int khash_put_iovec(khash *h, const struct iovec *iovec, size_t n) {
struct msghdr mh = { struct msghdr mh = {
.msg_iov = (struct iovec*) iovec, mh.msg_iov = (struct iovec*) iovec,
.msg_iovlen = n, mh.msg_iovlen = n,
}; };
ssize_t k; ssize_t k;

View File

@ -232,7 +232,7 @@ static int loop_configure(
* ioctl can return EAGAIN in case we change the lo_offset field, if someone else is accessing the * ioctl can return EAGAIN in case we change the lo_offset field, if someone else is accessing the
* block device while we try to reconfigure it. This is a pretty common case, since udev might * block device while we try to reconfigure it. This is a pretty common case, since udev might
* instantly start probing the device as soon as we attach an fd to it. Hence handle it in two ways: * instantly start probing the device as soon as we attach an fd to it. Hence handle it in two ways:
* first, let's take the BSD lock to ensure that udev will not step in between the point in * first, let's take the BSD lock that that ensures that udev will not step in between the point in
* time where we attach the fd and where we reconfigure the device. Secondly, let's wait 50ms on * time where we attach the fd and where we reconfigure the device. Secondly, let's wait 50ms on
* EAGAIN and retry. The former should be an efficient mechanism to avoid we have to wait 50ms * EAGAIN and retry. The former should be an efficient mechanism to avoid we have to wait 50ms
* needlessly if we are just racing against udev. The latter is protection against all other cases, * needlessly if we are just racing against udev. The latter is protection against all other cases,

View File

@ -232,8 +232,8 @@ static void sync_with_progress(void) {
BLOCK_SIGNALS(SIGCHLD); BLOCK_SIGNALS(SIGCHLD);
/* Due to the possibility of the sync operation hanging, we fork a child process and monitor /* Due to the possibility of the sync operation hanging, we fork a child process and monitor the progress. If
* the progress. If the timeout lapses, the assumption is that the particular sync stalled. */ * the timeout lapses, the assumption is that that particular sync stalled. */
r = asynchronous_sync(&pid); r = asynchronous_sync(&pid);
if (r < 0) { if (r < 0) {

View File

@ -514,8 +514,10 @@ static int remount_with_timeout(MountPoint *m, int umount_log_level) {
assert(m); assert(m);
/* Due to the possibility of a remount operation hanging, we fork a child process and set a /* Due to the possibility of a remount operation hanging, we
* timeout. If the timeout lapses, the assumption is that the particular remount failed. */ * fork a child process and set a timeout. If the timeout
* lapses, the assumption is that that particular remount
* failed. */
r = safe_fork("(sd-remount)", FORK_RESET_SIGNALS|FORK_CLOSE_ALL_FDS|FORK_LOG|FORK_REOPEN_LOG, &pid); r = safe_fork("(sd-remount)", FORK_RESET_SIGNALS|FORK_CLOSE_ALL_FDS|FORK_LOG|FORK_REOPEN_LOG, &pid);
if (r < 0) if (r < 0)
return r; return r;
@ -550,8 +552,10 @@ static int umount_with_timeout(MountPoint *m, int umount_log_level) {
assert(m); assert(m);
/* Due to the possibility of a umount operation hanging, we fork a child process and set a /* Due to the possibility of a umount operation hanging, we
* timeout. If the timeout lapses, the assumption is that the particular umount failed. */ * fork a child process and set a timeout. If the timeout
* lapses, the assumption is that that particular umount
* failed. */
r = safe_fork("(sd-umount)", FORK_RESET_SIGNALS|FORK_CLOSE_ALL_FDS|FORK_LOG|FORK_REOPEN_LOG, &pid); r = safe_fork("(sd-umount)", FORK_RESET_SIGNALS|FORK_CLOSE_ALL_FDS|FORK_LOG|FORK_REOPEN_LOG, &pid);
if (r < 0) if (r < 0)
return r; return r;