summaryrefslogtreecommitdiffstats
path: root/src/basic/syscalls-s390x.txt (unfollow)
Commit message (Collapse)AuthorFilesLines
2021-05-26sd-device: add API for triggering synthetic uevents with UUIDLennart Poettering3-0/+70
Since kernel 4.13 the kerne allows passing a UUID to generated uevents. Optionally do so via a new sd_device_trigger_with_uuid() call, and add sd_device_get_trigger_uuid() as helper to retrieve the UUID from a uevent we receive. This is useful for tracking uevents through the udev system, and waiting for specific triggers. (Note that the 4.13 patch allows passing arbitrary meta-info into the uevent as well. This does not add an API for that, because I am not convinced it makes sense — as it conflicts with our general rule that events are "stateless" if you so will — and it complicates the interface quite a bit). This replaces #13881 in a way, which added a similar infra, but which stalled, and whose synchronous settling APIs are somewhat problematic and probably not material to merge.
2021-05-26man: document that it is guaranteed that generated ID128 are never all-zero ↵Lennart Poettering2-8/+13
or all-one This is the case because the ID128 we generate are all marked as v4 UUID which requires that some bits are zero and others are one. Let's document this so that people can rely on SD_ID128_NULL being a special value for "uninitialized" that is always distinguishable from generated UUIDs.
2021-05-26update TODOLennart Poettering1-2/+0
2021-05-26Mount all fs nosuid when NoNewPrivileges=yesTopi Miettinen4-3/+39
When `NoNewPrivileges=yes`, the service shouldn't have a need for any setuid/setgid programs, so in case there will be a new mount namespace anyway, mount the file systems with MS_NOSUID.
2021-05-26man: fix list of escaped characters in unit namesLennart Poettering1-4/+5
The code works differently than the docs, and the code is right here. Fix the doc hence. See VALID_CHARS in unit-name.c for details about allowed chars in unit names, but keep in mind that "-" and "\" are special, since generated by the escaping logic: they are OK to show up in unit names, but need to be escaped when converting foreign strings to unit names to make sure things remain reversible. Fixes: #19623
2021-05-26core: support specifier expansion in DefaultEnvironment= and ManagerEnvironment=Lennart Poettering2-9/+56
Strictly speaking adding this is a compatibility break, given that previously % weren't special. But I'd argue that was simply a bug, as for the much more prominent Environment= service setting we always resolved specifiers, and DEfaultEnvironment= is explicitly listed as being the default for that. Hence, let's fix that. Replaces: #16787
2021-05-26repart: resolve $TMP specifiers tooLennart Poettering2-11/+10
This might be useful for CopyFiles=, to reference some subdir of $TMP in a generic way. This allows us to use the new common system_and_tmp_specifier_table[].
2021-05-26sysusers: add a generic specifier table for common casesLennart Poettering3-12/+14
This moves the definition of the specifier table consisting only of system and /tmp specifiers into generic code so that we can share it. This patch only adds one user of it for now. Follow-up patches will add more.
2021-05-26hexdecoct: make return parameters of unbase64mem() and unhexmem() optionalLennart Poettering1-8/+8
Inspired by: #19059
2021-05-26test-network: refuse RA if not necessaryYu Watanabe8-0/+13
2021-05-26test-network: wait for that the link is in configuring state at the beginningYu Watanabe1-1/+1
2021-05-26man: document udevadm info output prefixesLennart Poettering1-0/+39
Fixes: #19663
2021-05-26man: try to clarify that nss-mymachines does not provide name resolution ↵Lennart Poettering1-0/+9
outside its own scope Fixes: #18229
2021-05-26man: explicit say for priority/weight values whether more is more or lessLennart Poettering2-26/+34
Fixes: #17523
2021-05-26networkctl: politely refuse being called from a different netns than the ↵Lennart Poettering1-0/+43
networkd instance we talk to Otherwise things get very confusing since we mix up netens data from our client side and from the data we retrieve from networkd. In the long run we should teach networkctl some switch to operate safely on other netns, and in that case also determine the right networkd instance for that namespace. Fixes: #19236
2021-05-26networkd: add bus property exposing network namepace ID we run inLennart Poettering1-0/+29
This is useful for clients to determine whether they are running in the same network namespace as networkd. Note that access to /proc/$PID/ns/ is restricted and only permitted to equally privileged programs. This new bus property is primarily a way to work around this, so that unprivileged clients can determine the networkd netns, too.
2021-05-26README: drop reference to KinvolkLennart Poettering1-5/+0
Kinvolk got bought by Microsoft recently, I doubt they'd even be open for engineering services like this, hence let's drop the free advertisement.
2021-05-26core/service: do not set zero error to log_unit_debug_errno()Yu Watanabe1-1/+1
Fixes #19725.
2021-05-26dns-domain: fix build failure with libidnYu Watanabe1-3/+3
Follow-up for 319a4f4bc46b230fc660321e99aaac1bc449deea. Fixes #19723.
2021-05-26load-fragment: validate paths properlyLennart Poettering1-1/+1
The comment suggests we validate paths here, but we actually didn't, we only validated filenames. Let' fix that. (Note this still lets any kind of paths through, including those with ".." and stuff, this is not a normalization check after all)
2021-05-25test: add simple test for PCR list parsingLennart Poettering2-0/+36
2021-05-25tpm2-util: accept empty string for empty PCR listLennart Poettering1-0/+7
2021-05-25tpm2: support "+" as separator for TPM PCR listsLennart Poettering5-12/+15
Previously, we supported only "," as separator. This adds support for "+" and makes it the documented choice. This is to make specifying PCRs in crypttab easier, since commas are already used there for separating volume options, and needless escaping sucks. "," continues to be supported, but in order to keep things minimal not documented. Fixe: #19205
2021-05-25core: watch paths with symlinks in .path unitsLennart Poettering1-20/+42
When watching paths that contain symlinks in some element we so far always only watched the inode they are pointing to, not the symlink inode itself. Let's fix that and always watch both. We do this by simply installing the inotify watch once with and once without IN_DONT_FOLLOW. For non-symlink inodes this just overrides the same watch twice (where the second one replaces the first), which is has no effect effectively. For symlinks it means we'll watch both source and destination. Fixes: #17727
2021-05-25core: optimize loop in path_spec_fd_event()Lennart Poettering1-7/+7
Let's avoid the whole loop if it can never match
2021-05-25core: log about all errors in path_spec_watch()Lennart Poettering1-2/+4
So far we logged about most, but not all errors. Adding log to all errors.
2021-05-25core: align path inotify mask table a bitLennart Poettering1-4/+4
2021-05-25man: documet that loginctl {terminate|kill}-{session|user} take the empty ↵Lennart Poettering1-13/+13
string, optionally Fixes: #19711
2021-05-25loginctl: kill calling user when invoked with empty stringLennart Poettering1-6/+18
A suggested by: #19711
2021-05-25test: add test for OnSuccess= + Uphold= + PropagatesStopTo= + BindsTo=Lennart Poettering13-0/+156
2021-05-25test-engine: ensure atom bits are properly packedLennart Poettering1-0/+17
Let's make sure all atoms are actually used, and no holes are left.
2021-05-25core: reorder where we add units to queues in unit_notify()Lennart Poettering1-22/+30
This moves all calls that shall do deferred work on detecting whether to start/stop the unit or dependent units after a unit state change to the end of the function, to make things easier to read. So far, these calls were spread all over the function, and conditionalized needlessly on MANAGER_RELOADING(). This is unnecessary, since the queues are not dispatched while reloading anyway, and immediately before acting on a queued unit we'll check if the suggested operation really makes sense. The only conditionalizaiton we leave in is on checking the new unit state itself, since we have that in a local variable anyway.
2021-05-25core: change BoundBy= dependency handling to be processed by a deferred work ↵Lennart Poettering6-46/+116
queue So far StopWhenUnneeded= handling and UpheldBy= handling was already processed by a queue that is dispatched in a deferred mode of operation instead of instantly. This changes BoundBy= handling to be processed the same way. This should ensure that all *event*-to-job propagation is done directly from unit_notify(), while all *state*-to-job propagation is done from a deferred work queue, quite systematically. The work queue is submitted to by unit_notify() too. Key really is the difference between event and state: some jobs shall be queued one-time on events (think: OnFailure= + OnSuccess= and similar), others shall be queued continuously when a specific state is in effect (think: UpheldBy=). The latter cases are usually effect of the combination of states of a few units (e.g. StopWhenUnneeded= checks wether any of the Wants=/Requires=/… deps are still up before acting), and hence it makes sense to trigger them to be run after an individual unit's state changed, but process them on a queue that runs whenever there's nothing else to do that ensures the decision on them is only taken after all jobs/queued IO events are dispatched, and things settled, so that it makes sense to come to a combined conclusion. If we'd dispatch this work immediately inside of unit_notify() we'd always act instantly, even though another event from another unit that is already queued might make the work unnecessary or invalid. This is mostly a commit to make things philosophically clean. It does not add features, but it should make corner cases more robust.
2021-05-25core: make unneeded check a bit tighterLennart Poettering1-1/+1
Let's not consider a unit unneeded while it is reloading. Uneeded should be a pretty weak concept: if there's any doubt that something bit be needed, then assume it is.
2021-05-25core: order reverse dep table in same way as enumLennart Poettering1-3/+3
2021-05-25core: implement Uphold= dependency typeLennart Poettering12-7/+180
This is like a really strong version of Wants=, that keeps starting the specified unit if it is ever found inactive. This is an alternative to Restart= inside a unit, acknowledging the fact that whether to keep restarting the unit is sometimes not a property of the unit itself but the state of the system. This implements a part of what #4263 requests. i.e. there's no distinction between "always" and "opportunistic". We just dumbly implement "always" and become active whenever we see no job queued for an inactive unit that is supposed to be upheld.
2021-05-25core: add new OnSuccess= dependency typeLennart Poettering13-27/+115
This is similar to OnFailure= but is activated whenever a unit returns into inactive state successfully. I was always afraid of adding this, since it effectively allows building loops and makes our engine Turing complete, but it pretty much already was it was just hidden. Given that we have per-unit ratelimits as well as an event loop global ratelimit I feel safe to add this finally, given it actually is useful. Fixes: #13386
2021-05-25core: use StopPropagatedFrom= as default for .mount → .device unit ↵Lennart Poettering1-24/+47
dependencies Let's make use of the new dependency type for .mount/.device units, after all we added it for this purpose. Fixes: #9869
2021-05-25core: add new PropagateStopTo= dependency (and inverse)Lennart Poettering9-8/+46
This takes inspiration from PropagatesReloadTo=, but propagates stop jobs instead of restart jobs. This is defined based on exactly two atoms: UNIT_ATOM_PROPAGATE_STOP + UNIT_ATOM_RETROACTIVE_STOP_ON_STOP. The former ensures that when the unit the dependency is originating from is stopped based on user request, we'll propagate the stop job to the target unit, too. In addition, when the originating unit suddenly stops from external causes the stopping is propagated too. Note that this does *not* include the UNIT_ATOM_CANNOT_BE_ACTIVE_WITHOUT atom (which is used by BoundBy=), i.e. this dependency is purely about propagating "edges" and not "levels", i.e. it's about propagating specific events, instead of continious states. This is supposed to be useful for dependencies between .mount units and their backing .device units. So far we either placed a BindsTo= or Requires= dependency between them. The former gave a very clear binding of the to units together, however was problematic if users establish mounnts manually with different block device sources than our configuration defines, as we there might come to the conclusion that the backing device was absent and thus we need to umount again what the user mounted. By combining Requires= with the new StopPropagatedFrom= (i.e. the inverse PropagateStopTo=) we can get behaviour that matches BindsTo= in every single atom but one: UNIT_ATOM_CANNOT_BE_ACTIVE_WITHOUT is absent, and hence the level-triggered logic doesn't apply. Replaces: #11340
2021-05-25core: add a reverse dep for OnFailure=Lennart Poettering6-1/+12
Let's add an implicit reverse dep OnFailureOf=. This is exposed via the bus to make things more debuggable: you can now ask systemd for which units a specific unit is the failure handler. OnFailure= was the only dependency type that had no inverse, this fixes that. Now that deps are a bit cheaper, it should be OK to add deps that only serve debug purposes.
2021-05-25core: hide cgroup fields in unit_dump() for non-cgroup unit typesLennart Poettering1-35/+39
A bunch of properties in the main Unit strcture only make sense for cgroup units. Let's hide them from unit types that have no relation to cgroups.
2021-05-25core: convert Slice= into a proper dependency (and add a back dependency)Lennart Poettering11-54/+66
The slice a unit is assigned to is currently a UnitRef reference. Let's turn it into a proper dependency, to simplify and clean up code a bit. Now that new dep types are cheaper, deps should generally be preferable over everything else, if the concept applies. This brings one major benefit: we often have to iterate through all unit a slice contains. So far we iterated through all Before= dependencies of the slice unit to achieve that, filtering out unrelated units, and taking benefit of the fact that slice units are implicitly ordered Before= the units they contain. By making Slice= a proper dependency, and having an accompanying SliceOf= dependency type, this is much simpler and nicer as we can directly enumerate the units a slice contains. The forward dependency is actually called InSlice internally, since we already used the UNIT_SLICE name as UnitType field. However, since we don't intend to expose the dependency to users as dep anyway (we already have the regular Slice D-Bus property for this) this shouldn't matter. The SliceOf= implicit dependency type (the erverse of Slice=/InSlice=) is exported over the bus, to make things a bit nicer to debug and discoverable.
2021-05-25core: add UNIT_GET_SLICE() helperLennart Poettering8-57/+83
In a later commit we intend to move the slice logic to use proper dependencies instead of a "UnitRef" object. This preparatory commit drops direct use of the slice UnitRef object for a static inline function UNIT_GET_SLICE() that is both easier to grok, and allows us to easily replace its internal implementation later on.
2021-05-25test-engine: extend engine testLennart Poettering1-2/+90
Let's verify that the dependency type to atom mapping is consistent. Let's also verify that dependency merging works correctly.
2021-05-25core: rebreak a few commentsLennart Poettering4-54/+41
2021-05-25core: split dependency types into atomsLennart Poettering18-481/+898
2021-05-25hashmap: add helper to test if iterator is still at beginningLennart Poettering1-0/+1
2021-05-25core: make libbpf a dlopen() dependencyLuca Boccassi11-28/+160
2021-05-25meson: look for bpftool in /usr/sbin tooLuca Boccassi1-1/+3
On Debian, bpftool is installed in /usr/sbin, which is not in $PATH for non-root users by default, so finding it fails. Add a secondary, hard-coded '/usr/sbin/bpftool' after 'bpftool' so that meson can find it. https://packages.debian.org/sid/amd64/bpftool/filelist
2021-05-25test-parse-argument: Include signal.hKhem Raj1-0/+2
Fixes src/test/test-parse-argument.c:49:29: error: use of undeclared identifier 'SIGABRT' Signed-off-by: Khem Raj <raj.khem@gmail.com>