b26fa1a2fbcfee7d03b0c8fd15ec3aa64ae70b9f |
|
10-Feb-2016 |
Daniel Mack <daniel@zonque.org> |
tree-wide: remove Emacs lines from all files
This should be handled fine now by .dir-locals.el, so need to carry that
stuff in every file. |
efa1606eec3907d409942a0709d9996a59ef9d14 |
|
23-Jan-2016 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
udevd: do not clean up fds in main
fds will also be closed during manager cleanup in run, leading
to an error when we try to close them again. It is now possible
to "leak" the fds on error, but it's an unlikely event and we
will exit immediately anyway.
Fixes #2418. |
e5d7bce12d95b38e592a2561b49a42d033cc82c1 |
|
18-Jan-2016 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
udevd: initialize fds to -1 and close them before exiting
Little change in practice, because the program will exit soon
afterwards, but the standard style of closing all fds is now followed.
Also gets rid of gcc warning about fd_ctrl and fd_uevent being
unitialized. |
3f65d73149cd0f64eb3fdb0c71f55f6c1133fefe |
|
07-Dec-2015 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
udev: add emacs header line
Otherwise emacs wants to use 2-space indentation and other
attrocities. |
4afd3348c7506dd1d36305b7bcb9feb8952b9d6b |
|
27-Nov-2015 |
Lennart Poettering <lennart@poettering.net> |
tree-wide: expose "p"-suffix unref calls in public APIs to make gcc cleanup easy
GLIB has recently started to officially support the gcc cleanup
attribute in its public API, hence let's do the same for our APIs.
With this patch we'll define an xyz_unrefp() call for each public
xyz_unref() call, to make it easy to use inside a
__attribute__((cleanup())) expression. Then, all code is ported over to
make use of this.
The new calls are also documented in the man pages, with examples how to
use them (well, I only added docs where the _unref() call itself already
had docs, and the examples, only cover sd_bus_unrefp() and
sd_event_unrefp()).
This also renames sd_lldp_free() to sd_lldp_unref(), since that's how we
tend to call our destructors these days.
Note that this defines no public macro that wraps gcc's attribute and
makes it easier to use. While I think it's our duty in the library to
make our stuff easy to use, I figure it's not our duty to make gcc's own
features easy to use on its own. Most likely, client code which wants to
make use of this should define its own:
#define _cleanup_(function) __attribute__((cleanup(function)))
Or similar, to make the gcc feature easier to use.
Making this logic public has the benefit that we can remove three header
files whose only purpose was to define these functions internally.
See #2008. |
4a0b58c4a30ecaa61202f845ed86f75b36370cd0 |
|
17-Nov-2015 |
Lennart Poettering <lennart@poettering.net> |
tree-wide: use right cast macros for UIDs, GIDs and PIDs |
709f6e46a35ec492b70eb92943d82a8d838ce918 |
|
05-Nov-2015 |
Michal Schmidt <mschmidt@redhat.com> |
treewide: use the negative error codes returned by our functions
Our functions return negative error codes.
Do not rely on errno being set after calling our own functions. |
b5efdb8af40ea759a1ea584c1bc44ecc81dd00ce |
|
27-Oct-2015 |
Lennart Poettering <lennart@poettering.net> |
util-lib: split out allocation calls into alloc-util.[ch] |
8f328d36c9c66efdb40fd19a970523d715078826 |
|
27-Oct-2015 |
Lennart Poettering <lennart@poettering.net> |
socket-util: move CMSG_FOREACH() from macro.h to socket-util.h |
ee104e11e303499a637c5cd8157bd12ad5cc116d |
|
27-Oct-2015 |
Lennart Poettering <lennart@poettering.net> |
user-util: move UID/GID related macros from macro.h to user-util.h |
4e731273edfe852a3eee2949cd20f49fd5b4f6d7 |
|
27-Oct-2015 |
Lennart Poettering <lennart@poettering.net> |
util-lib: move /proc/cmdline parsing code to proc-cmdline.[ch] |
f4f15635ec05293ffcc83a5b39f624bbabbd8fd0 |
|
27-Oct-2015 |
Lennart Poettering <lennart@poettering.net> |
util-lib: move a number of fs operations into fs-util.[ch] |
6bedfcbb2970e06a4d3280c8fb62083d252ede73 |
|
27-Oct-2015 |
Lennart Poettering <lennart@poettering.net> |
util-lib: split string parsing related calls from util.[ch] into parse-util.[ch] |
c004493cdefc1f43a3956ca529e8070f8d70be56 |
|
26-Oct-2015 |
Lennart Poettering <lennart@poettering.net> |
util-lib: split out IO related calls to io-util.[ch] |
3ffd4af22052963e7a29431721ee204e634bea75 |
|
25-Oct-2015 |
Lennart Poettering <lennart@poettering.net> |
util-lib: split out fd-related operations into fd-util.[ch]
There are more than enough to deserve their own .c file, hence move them
over. |
07630cea1f3a845c09309f197ac7c4f11edd3b62 |
|
24-Oct-2015 |
Lennart Poettering <lennart@poettering.net> |
util-lib: split our string related calls from util.[ch] into its own file string-util.[ch]
There are more than enough calls doing string manipulations to deserve
its own files, hence do something about it.
This patch also sorts the #include blocks of all files that needed to be
updated, according to the sorting suggestions from CODING_STYLE. Since
pretty much every file needs our string manipulation functions this
effectively means that most files have sorted #include blocks now.
Also touches a few unrelated include files. |
618234a5258768359cb1086b152c5f08aaf89754 |
|
30-Sep-2015 |
Lennart Poettering <lennart@poettering.net> |
basic: split out cpu set specific APIs into cpu-set-util.[ch] |
ece174c5439021e32ebcc858842de9586072c006 |
|
09-Sep-2015 |
Lennart Poettering <lennart@poettering.net> |
tree-wide: drop {} from one-line if blocks
Patch via coccinelle. |
e859aa9e993453be321450148d45d08fcc55c3f5 |
|
03-Sep-2015 |
David Herrmann <dh.herrmann@gmail.com> |
udev: ignore ENOEXEC from cgroup lookup
The recent cgroup-rework changed the error code for un-mounted cgroupfs to
ENOEXEC. Make sure udev ignores it just like ENOENT and does not spill
warnings on the screen. |
38a03f06a7393d2721c23f23f0589d2f6d0904af |
|
03-Aug-2015 |
Lennart Poettering <lennart@poettering.net> |
sd-event: make sure sd_event_now() cannot fail
Previously, if the event loop never ran before sd_event_now() would
fail. With this change it will instead fall back to invoking now(). This
way, the function cannot fail anymore, except for programming error when
invoking it with wrong parameters.
This takes into account the fact that many callers did not handle the
error condition correctly, and if the callers did, then they kept simply
invoking now() as fall back on their own. Hence let's shorten the code
using this call, and make things more robust, and let's just fall back
to now() internally.
Whether now() is used or the cache timestamp may still be detected via
the return value of sd_event_now(). If > 0 is returned, then the fall
back to now() was used, if == 0 is returned, then the cached value was
returned.
This patch also simplifies many of the invocations of sd_event_now():
the manual fall back to now() can be removed. Also, in cases where the
call is invoked withing void functions we can now protect the invocation
via assert_se(), acknowledging the fact that the call cannot fail
anymore except for programming errors with the parameters.
This change is inspired by #841. |
e14b6f211cefd00aed2cb9f069941f5c13776457 |
|
24-Jul-2015 |
Lidong Zhong <lzhong@suse.com> |
udev: fix parameter process |
3567afa5b4775cf74bc92617cc716b4f4c28a120 |
|
21-Jul-2015 |
Michal Schmidt <mschmidt@redhat.com> |
udev: unify reporting of invalid cmdline keys
This way it does not need distinct string literals and it also preserves
the "rd." prefix. |
e00f5bddde0daff900cbd93e1ee0530ad1ae06ce |
|
21-Jul-2015 |
Michal Schmidt <mschmidt@redhat.com> |
udev: fix crash with invalid udev.log-priority
Fixes: https://bugzilla.redhat.com/show_bug.cgi?id=1245293 |
ad118bda159d3f9c27c5a15ace54cf808a6e8788 |
|
07-Jul-2015 |
Daniel Mack <daniel@zonque.org> |
tree-wide: fix write_string_file() user that should not create files
The latest consolidation cleanup of write_string_file() revealed some users
of that helper which should have used write_string_file_no_create() in the
past but didn't. Basically, all existing users that write to files in /sys
and /proc should not expect to write to a file which is not yet existant. |
4c1fc3e404d648c70bd2f50ac50aeac6ece8872e |
|
07-Jul-2015 |
Daniel Mack <daniel@zonque.org> |
fileio: consolidate write_string_file*()
Merge write_string_file(), write_string_file_no_create() and
write_string_file_atomic() into write_string_file() and provide a flags mask
that allows combinations of atomic writing, newline appending and automatic
file creation. Change all users accordingly. |
077fc5e2602effd9b0f46d8ae95271de2b5f2997 |
|
01-Jul-2015 |
David Herrmann <dh.herrmann@gmail.com> |
udev: destroy manager before cleaning environment
Due to our _cleanup_ usage for the udev manager, it will be destroyed
after the "exit:" label has finished. Therefore, it is the last
destruction done in main(). This has two side-effects:
- mac_selinux is destroyed before the udev manager is, possible causing
use-after-free if the manager-cleanup accesses selinux data
- log_close() is called *before* the manager is destroyed, possibly
re-opening the log if you use --debug (and thus not re-applying the
--debug option)
Avoid this by moving the manager-handling into a new function called
run(). This function will be left before we enter the "exit:" label in
main(), hence, the manager object will be destroyed early. |
78d3e041a57b0c790b7c0b01906d9eb19a031029 |
|
01-Jul-2015 |
Kay Sievers <kay@vrfy.org> |
udevd: force --debug mode to stderr
https://github.com/systemd/systemd/issues/462 |
b6aab8ef9c4ac7555229fc741ea807bee093df31 |
|
23-Jun-2015 |
Tom Gundersen <teg@jklm.no> |
udev: worker - check return value of udev_monitor_enable_receiving()
Fixes CID#1297430. |
11b9fb15be96da5644ebf85bbc390fdd2756ade9 |
|
22-Jun-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: suppress warning if we don't find cgroup
This is expected on non-systemd systems, so just log it at debug level.
This fixes issue #309. |
118786182b8eafb55588e726fe6914290ef6c05f |
|
17-Jun-2015 |
Thomas Hindoe Paaboel Andersen <phomes@gmail.com> |
udved: remove dead code
Leftover from 6af5e6a4c918a68b196a04346732e094e5373a36 |
40e749b59ba49fb97c1f45859debe2a82bc9c9ef |
|
17-Jun-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: daemon - connect /dev/null to std{in,out,err} in debug mode
This is essentially a revert of 5c67cf2 and fixes issue #190. |
ab7854df736585e42ec208012b7e2e11b652998a |
|
17-Jun-2015 |
David Herrmann <dh.herrmann@gmail.com> |
udev: don't close FDs before dropping them from epoll
Make sure we never close fds before we drop their related event-source.
This will cause horrible disruptions if the fd-num is re-used by someone
else. Under normal conditions, this should not cause any problems as the
close() will drop the fd from the epoll-set automatically. However, this
changes if you have any child processes with a copy of that fd.
This fixes issue #163.
Background:
If you create an epoll-set via epoll_create() (lets call it 'EFD')
you can add file-descriptors to it to watch for events. Whenever
you call EPOLL_CTL_ADD on a file-descriptor you want to watch, the
kernel looks up the attached "struct file" pointer, that this FD
refers to. This combination of the FD-number and the "struct file"
pointer is used as key to link it into the epoll-set (EFD).
This means, if you duplicate your file-descriptor, you can watch
this file-descriptor, too (because the duplicate will have a
different FD-number, hence, the combination of FD-number and
"struct file" is different as before).
If you want to stop watching an FD, you use EPOLL_CTL_DEL and pass
the FD to the kernel. The kernel again looks up your
file-descriptor in your FD-table to find the linked "struct file".
This FD-number and "struct file" combination is then dropped from
the epoll-set (EFD).
Last, but not least: If you close a file-descriptor that is linked
to an epoll-set, the kernel does *NOTHING* regarding the
epoll-set. This is a vital observation! Because this means, your
epoll_wait() calls will still return the metadata you used to
watch/subscribe your file-descriptor to events.
There is one exception to this rule: If the file-descriptor that
you just close()ed was the last FD that referred to the underlying
"struct file", then _all_ epoll-set watches/subscriptions are
destroyed. Hence, if you never dup()ed your FD, then a simple
close() will also unsubscribe it from any epoll-set.
With this in mind, lets look at fork():
Assume you have an epoll-set (EFD) and a bunch of FDs
subscribed to events on that EFD. If you now call fork(),
the new process gets a copy of your file-descriptor table.
This means, the whole table is copied and the "struct
file" reference of each FD is increased by 1. It is
important to notice that the FD-numbers in the child are
exactly the same as in the parent (eg., FD #5 in the child
refers to the same "struct file" as FD #5 in the parent).
This means, if the child calls EPOLL_CTL_DEL on an FD, the
kernel will look up the linked "struct file" and drop the
FD-number and "struct file" combination from the epoll-set
(EFD). However, this will effectively drop the
subscription that was installed by the parent.
To sum up: even though the child gets a duplicate of the
EFD and all FDs, the subscriptions in the EFD are *NOT*
duplicated!
Now, with this in mind, lets look at what udevd does:
Udevd has a bunch of file-descriptors that it watches in its
sd-event main-loop. Whenever a uevent is received, the event is
dispatched on its workers. If no suitable worker is present, a new
worker is fork()ed to handle the event. Inside of this worker, we
try to free all resources we inherited. However, the fork() call
is done from a call-stack that is never rewinded. Therefore, this
call stack might own references that it drops once it is left.
Those references we cannot deduce from the fork()'ed process;
effectively causing us to leak objects in the worker (eg., the
call to sd_event_dispatch() that dispatched our uevent owns a
reference to the sd_event object it used; and drops it again once
the function is left).
(Another example is udev_monitor_ref() for each 'worker' that is
also inherited by all children; thus keeping the udev-monitor and
the uevent-fd alive in all children (which is the real cause for
bug #163))
(The extreme variant is sd_event_source_unref(), which explicitly
keeps event-sources alive, if they're currently dispatched,
knowing that the dispatcher will free the event once done. But
if the dispatcher is in the parent, the child will never ever
free that object, thus leaking it)
This is usually not an issue. However, if such an object has a
file-descriptor embedded, this FD is left open and never closed in
the child.
In manager_exit(), if we now destroy an object (i.e., close its embedded
file-descriptor) before we destroy its related sd_event_source, then
sd-event will not be able to drop the FD from the epoll-set (EFD). This
is, because the FD is no longer valid at the time we call EPOLL_CTL_DEL.
Hence, the kernel cannot figure out the linked "struct file" and thus
cannot remove the FD-number plus "struct file" combination; effectively
leaving the subscription in the epoll-set.
Since we leak the uevent-fd in the children, they retain a copy of the FD
pointing to the same "struct file". Thus, the EFD-subscription are not
automatically removed by close() (as described above). Therefore, the main
daemon will still get its metadata back on epoll_watch() whenever an event
occurs (even though it already freed the metadata). This then causes the
free-after-use bug described in #163.
This patch fixes the order in which we destruct objects and related
sd-event-sources. Some open questions remain:
* Why does source_io_unregister() not warn on EPOLL_CTL_DEL failures?
This really needs to be turned into an assert_return().
* udevd really should not leak file-descriptors into its children. Fixing
this would *not* have prevented this bug, though (since the child-setup
is still async).
It's non-trivial to fix this, though. The stack-context of the caller
cannot be rewinded, so we cannot figure out temporary refs. Maybe it's
time to exec() the udev-workers?
* Why does the kernel not copy FD-subscriptions across fork()?
Or at least drop subscriptions if you close() your FD (it uses the
FD-number as key, so it better subscribe to it)?
Or it better used
FD+"struct file_table*"+"struct file*"
as key to not allow the childen to share the subscription table..
*sigh*
Seems like we have to live with that API forever. |
72c0a2c255b172ebbb2a2b7dab7c9aec4c9582d9 |
|
15-Jun-2015 |
Lennart Poettering <lennart@poettering.net> |
everywhere: port everything to sigprocmask_many() and friends
This ports a lot of manual code over to sigprocmask_many() and friends.
Also, we now consistly check for sigprocmask() failures with
assert_se(), since the call cannot realistically fail unless there's a
programming error.
Also encloses a few sd_event_add_signal() calls with (void) when we
ignore the return values for it knowingly. |
1c4baffc1895809bae9ac36b670af90a4cb9cd7d |
|
13-Jun-2015 |
Tom Gundersen <teg@jklm.no> |
sd-netlink: rename from sd-rtnl |
2a1288ff89322a2f49c79f6d1832c8164c14a05c |
|
10-Jun-2015 |
Lennart Poettering <lennart@poettering.net> |
util: introduce CMSG_FOREACH() macro and make use of it everywhere
It's only marginally shorter then the usual for() loop, but certainly
more readable. |
920b52e4909d9dc812817fd8b82f83ca23a11c91 |
|
08-Jun-2015 |
Thomas Hindoe Paaboel Andersen <phomes@gmail.com> |
tree-wide: remove spurious space |
11b1dd8cecd486d5b1dd8fb27373ac79ea467ff8 |
|
03-Jun-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: merge manager_new() and manager_listen() again
Now that listen_fds() have been split out, we can safely move the allocation
of the manager object after doing the forking (the fork is done to notify legcay
init-systems that the fds are ready).
Subsequently, we can merge manager_listen() back into managre_new().
This entails a minor behaviour change: the application of permissions to
static device nodes now happens after the fork (but still before notifying
systemd about being ready). |
7500cd5e96cff52a726d03194e3b927771ddb1d4 |
|
03-Jun-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: make sd_notify independent of forknig/notify mode
This will simply silently fail on non-systemd systems, so there is no reason
to make it conditional.
Also make it clear that we notify systemd about being ready as the last step
before starting the event loop, whereas the forking might need to happen
earlier. |
b7f74dd48f7f3166caf781487c1f5c51f6b70d48 |
|
03-Jun-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: manager - split listen_fds() out of manager_new()
This will allow us in a follow-up commit to listen to fds before forking and
still allocate the manager only after the fork. |
f59118ec7911730bb79b273bb4034f5eb4c80868 |
|
03-Jun-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: unify fd handling in forking/notify modes
Hide the differenec in listen_fds, by simply opening the fds
here in case they are not passed in. |
c26d1879c72fbaa147c0a82df433f676df139a90 |
|
03-Jun-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: make cgroup logic independent of socket passing
This should have no behavioural change, but it is odd to tie the cgroup cleaning to
whether or not we are passed sockets.
The point really is if we are guaranteed to be in a dedicated cgroup, so instead
check for our parent being PID1 (we already implicitly only do this on systemd
systems). |
bf6871639e25119cf3f8b414890d51e965ca3f97 |
|
03-Jun-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: only bind ctrl and netlink sockets when we open them
If they are passed from PID1 this is not necessary. |
fcff1e7241377b44f1d6e2a68ed55940b154ed4e |
|
03-Jun-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: rename systemd_fds to listen_fds |
8314de1d815667b0289423d7e6bfbe8d83759077 |
|
03-Jun-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: simplify signal mask handling
We used to block all signals, and restore the original signal mask before exec'ing
external processes.
Now we just block the signals we care about and unconditionally unblock all signals
before exec'ing. |
3b64e4d4f40baac56148c7d333d6a0053358ec7a |
|
02-Jun-2015 |
Tom Gundersen <teg@jklm.no> |
udev: add some asserts
Mostly for documentation purposes. |
3d7dc8e4f9273ed0f14116ee7400718b7459df0d |
|
31-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: open sockets before forking
The communication channels must all be opened before forknig in daemon mode,
or we cannot guarantee that udevadm will work correctly as soon as udevd is
started. |
49f997f3bcf3ff6a1d794dfb8fbd3907d653dc33 |
|
31-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: don't allocate sd_event object before fork
In daemon mode we would break sd-event as it cannot work accross different processes.
Simply delay the allocation to after the fork. |
f6fd40d16adbd0f9ddbb1f24b4b8734fd8790ad0 |
|
31-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: don't sanitize fd 0,1,2
Kay said: 'it is from ancient times, when we started udevd from the
kernel's usermodhelper which had no fd 0,1,2'. |
b79aacbff61e77c5fa579e30f7c6fc7f2d67e9e4 |
|
29-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: notify - expose a bit more of the internal state
This notifies PID1 about config being flushed, about shutdown starting and shutdown finalizing. |
39fd2ca1616e6d0bc8ca49bb8de1245a9087f2a2 |
|
29-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: notify - keep NOTIFY_SOCKET around
Only unset the env var in the workers, but otherwise keep it around in the main daemon. |
3cbb20578b4cc239b049d4901fdac42640f4879e |
|
29-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: modernize status notification
Only log about starting in daemon mode, rely on PID1 to log this in notify mode. Also
explicitly set the STATUS variable, as is done in notify mode as is done for other
serivecs. |
8128f2297da0c2fdd82b3d48f049deb01763f8c8 |
|
29-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: event - port spawn_wait() to sd-event
This allows us to drop the special sigterm handling in spawn_wait()
as this will now be passed directly to the worker event loop.
We now log failing spawend processes at 'warning' level, and timeouts
are in terms of CLOCK_BOOTTIME when available, otherwise the behavior
is unchanged. |
693d371d30fee1da58365121801445b404416ada |
|
29-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: move main-loop to sd-event |
8302fe5a132ab0b6af21aad051b91b7e655e200b |
|
29-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: explicitly try to start event queue when it may be possible
Rather than trying to schedule new events on every main-loop iteration, do it explicitly when
processing an event finishes, a worker is killed, a new uevent is received, or the event queue
is explicitly restarted. |
7c4c7e891364660597c2511c44c7bfccb6a5b124 |
|
29-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: only check for changed config before scheduling new events
Also move builtin and rules initialization from main loop to
event_queue_start().
No functional change. |
62d43dac795beb715dd608c08762daa39fc92807 |
|
29-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: introduce manager_exit() and manager_reload()
The behavior is mostly unchanged, but rather than only ever calling these functions at
fixed points in the event loop, they are called directly whenever they are invoked. |
86c3bece38bcf55da6387d20c6f01da9ad0284dc |
|
27-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: fix SIGCHLD handling in --daemon mode
We were listening for SIGCHLD in the wrong process. |
185abfc3d6b4e8f804a3f7216cd8b0459593af87 |
|
26-May-2015 |
David Herrmann <dh.herrmann@gmail.com> |
udev: fix inotify handling
This partly reverts:
commit 6d1b1e0bc6bd020218afc5f05286bf372be283d5
Author: Tom Gundersen <teg@jklm.no>
Date: Sun May 24 15:10:04 2015 +0200
udevd: worker - fully clean up unnecessary fds
The inotify-fd _is_ used in the workers, so don't close it! Have a look at
udev-watch.c, which keeps track of the inotify-fd as a global variable
(ugh!). |
040e689654ef08c63ab93bf0875865398e8d9c91 |
|
24-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: event - fix event queue in daemenozied mode
We would enforce that events could only be added to the queue from the
main process, but that brake in daemonized mode. Relax the restriction
to only allow one process to add events to the queue.
Reported by Mantas MikulÄ—nas. |
2dd9f98d2d7a06a8e28729da6339fce50d66e9cc |
|
24-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: worker - modernize a bit
Initialize structs when declaring rather than using memzero(). |
6d1b1e0bc6bd020218afc5f05286bf372be283d5 |
|
24-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: worker - fully clean up unnecessary fds
These are only ever used in the parent process, so close them early in the worker. |
03cfe0d51499e86b1573d121337594719d9f2012 |
|
21-May-2015 |
Lennart Poettering <lennart@poettering.net> |
nspawn: finish user namespace support |
f53d1fcdb355125a1347acf0d2d1ffa7264d6bfe |
|
18-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: main - use _exit() when daemonizing
Makes it a bit clearer what is going on, rather than jumping to the end of main().
No functional change. |
712cebf146b65136f02b49eb0f64a14f4628aec9 |
|
18-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: main - reshuffle
First parse config, then sanitize environment before donig any further setup.
No functional change. |
0561329d1f4e6634b3b20682b036c4f22e4b5b21 |
|
18-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: rename on_reque_{exit,reload} to on_sig{term,chld}
No functional change. |
4fa4d885556af16fb945f9a9402e71077d5a4e4a |
|
18-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: introduce on_event_timeout{,_warning}
This uses kill_and_sigcont() instead of kill(), otherwise no functional change. |
f29328d6557f1ebb3df5c0b491fb3dd3d970d356 |
|
18-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: process all SIGCHLD events every time the handler is invoked
We were returning rather than continuing in some cases. The intention
was always to fully process all pending events before returning
from the SIGCHLD handler. Restore this behaviour. |
b2d21d9318497517519956ab9994f2303aa0223e |
|
18-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: init/exit the builtins in manager_new/free
No functional change. |
e237d8cb0e5488eef311ca1eafe48e8a2248b04c |
|
18-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: move file descriptors to Manager
No functional change. |
cb49a4f2dd53184ab787bcad69bcc9b8177d2e6e |
|
16-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: queue - update queue state when events are queued/freed
This way it is more obvious that the queue flag file is always
up-to-date. Moreover, we only have to touch/unlink it when the
first/last event is allocated/freed. |
738a790778608a8590d93c790f11b484f1dd8da4 |
|
16-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: on_worker - distinguish between EINTR and EAGAIN
EAGAIN means there are no more messages to read, so give up. EINTR means we got interrupted
reading a message, so try again. |
9a73bd7cab019aa1b9b4342ce2abd51b6e50b085 |
|
16-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: worker - use loop_write() rather than send()
When notifying the main daemon about event completion, make sure the message is sent
successfully, and not interrupted. |
ecb17862ad969cc15e94f95d0255b51ba3e588e1 |
|
12-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: manager - move a few global variables into the Manager object |
c0c6806bf9b3faacdbd0effa153fe1b058c4cd4e |
|
12-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: pass a Manager objcet to event handlers
Stop relying on global variables in event handlers, and move them
all to a Manager object instead. |
005e945cc454c07fac381d59a6e0fe810eb1107b |
|
12-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: remove stale comment |
799a108c074bb3d6b4b44a9f2b69342cd60bb137 |
|
12-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: explicitly update queue file before answering to ping
This avoids updating the flag files twice for every loop, and also removes another dependency
in the main-loop, so we are freer to reshufle it as we want. |
a8389097c0cd91720424b25ee5c6825b4f69cb6a |
|
12-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: explicitly read out uevents we create ourselves
Rather than skippling ctrl handling whenever we have handlede inotify events
(and hence may have synthesized a 'change' event), just call the uevent
handling explicitly from on_inotify() so that the event queue is up-to-date. |
e82e8fa5b19243177e178ed78c2480505eda5e03 |
|
12-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: move to sd-event-style event handlers |
e4f66b7773ae21278bf6b9c02a3282eec5996266 |
|
12-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: make udev_ctrl_connection global
This allows us to simplify the ctrl_msg handler. Eventually all this global state should move to
a Manager object or so. |
74bddd6f192cd31ce181adbedae9a625fcf107ba |
|
07-May-2015 |
Thomas Hindoe Paaboel Andersen <phomes@gmail.com> |
udevd: remove unused function |
020328e197c1729832d1bb2761d2d2d1e952c41c |
|
06-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: don't explicitly count the number of workers
Simply query the size of the hashmap keeping all the worker contexts instead. |
a505965d955a5b90a5199b1be953e9707b19e3b5 |
|
06-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: keep workers in a hashmap rather than a list
This makes the code somewhat more readable. |
c6aa11f200bcdb910563964d4680807bde372a39 |
|
06-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: worker - drop reference counting
Make the worker context have the same life-span as the worker process. It is created on fork()
and free'd on SIGCHLD.
The change means that we can get worker_returned() for a worker context that is no longer around,
this is not a problem and we can just drop the message. The only use for worker_returned() is to
know to reschedule events to workers that are still around, so if the worker has already exited
it is not important to keep track of. We still print a debug statement in this case to be on the
safe side. |
f7e3c6f5f8cc8e5d2e73c96bd3fcd6decde85d66 |
|
06-May-2015 |
David Herrmann <dh.herrmann@gmail.com> |
udev: fix weird coding-style
Eeeew! |
c4fcf70a015e47ec894e1b9d0c1940caf652195b |
|
06-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: worker - allow passing NULL to worker_unref() |
8b46c3fc48767e36dbfb6b6ca3d8a12aa024fd40 |
|
06-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: worker - use _exit() rather than exit()
Follow the coding style and avoid the exit handlers. |
6af5e6a4c918a68b196a04346732e094e5373a36 |
|
06-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: modernize error handling
We never return magic exit codes, but just EXIT_FAILUER or EXIT_SUCCESS. |
614a823c4416467d324c3236f58bfac34da33979 |
|
06-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: use kernel cmdline parser |
9c2dabd05f9a9d6145d1ea6a1dae8afb569ed4c5 |
|
06-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: worker - move some fields from the worker to the event |
39c19cf13a5d32887977f06cb34e4c95e6da3f56 |
|
06-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: worker - introduce worker_attach_event() |
3a19b32a673f133f8b953869dd11a2a17344856c |
|
06-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: worker - make refcounting clearer
Take and drop explicit references where it makes sense. |
e03c7cc26ed731245827ada3aa24f6c937ff80a1 |
|
06-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: worker - only allocate the worker struct in the main process
This is not used in the worker, so avoid having to free it there. |
f96a5160c48574015cdd87d5991f65f8e03f0c72 |
|
06-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: rename worker_new() to worker_spawn() |
4914cb2ddc0aa2f71bddb5bb9a4bed7e6948d561 |
|
06-May-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: don't track worker exitcode
We used to use this to track failed events so they could be retriggered,
but that is no longer done, so the code can be dropped. |
b66f29a1eaaa001b9bdeac7609f84c71b2e48f21 |
|
24-Apr-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: worker - log if worker result cannot be sent
If the main daemon is not notified about a worker finishing an event
the refcounting of the worker struct will be wrong, and we will lose
track of the number of children we have to wait for.
This should not happen, but if it does we better complain loudly about
it. Worst case udev will wait for 30 seconsd at shutdown waiting for
nonexistent workers. |
c0bbfd72e7437f8b2e6d64efa56f2705fceb0fcc |
|
24-Apr-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: worker - warn if unknown worker returns |
979558f3227cc0242c4b7fd4a9978e2562ed473e |
|
24-Apr-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: worker - let the kernel attach the sender pid
No need to include this explicitly, just use SCM_CREDENTIALS. |
e2f8d97a1316af5b2d5c1f69d12e33709e830a1b |
|
24-Apr-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: don't unref worker objects on SIGSTOP/SIGCONT
We should not be receiving these anyway, but let's be correct. |
d1317d02e637e19e9f40175657ff8e6098523633 |
|
24-Apr-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: warn if we receive SIGCHLD from untracked worker |
70a93737ecd613d9b5855cb5d7c80829b966ec6a |
|
24-Apr-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: improve logging in SIGCHLD handling
Remove some redundant logging, and reduce the log-level in most cases. The only
case that is really critical is if a worker failed while hanlding an event, so
keep that at error level. |
07ba8037bf2a2d6a683fa107ee6f2b9545fca23e |
|
11-Apr-2015 |
Daniel Drake <drake@endlessm.com> |
udevd: fix synchronization with settle when handling inotify events
udev uses inotify to implement a scheme where when the user closes
a writable device node, a change uevent is forcefully generated.
In the case of block devices, it actually requests a partition rescan.
This currently can't be synchronized with "udevadm settle", i.e. this
is not reliable in a script:
sfdisk --change-id /dev/sda 1 81
udevadm settle
mount /dev/sda1 /foo
The settle call doesn't synchronize there, so at the same time we try
to mount the device, udevd is busy removing the partition device nodes and
readding them again. The mount call often happens in that moment where the
partition node has been removed but not readded yet.
This exact issue was fixed long ago:
http://git.kernel.org/cgit/linux/hotplug/udev.git/commit/?id=bb38678e3ccc02bcd970ccde3d8166a40edf92d3
but that fix is no longer valid now that sequence numbers are no longer
used.
Fix this by forcing another mainloop iteration after handling inotify events
before unblocking settle. If the inotify event caused us to generate a
"change" event, we'll pick that up in the following loop iteration, before
we reach the end of the loop where we respond to settle's control message,
unblocking it. |
6482f6269c87d2249e52e889a63adbdd50f2d691 |
|
10-Apr-2015 |
Ronny Chevalier <chevalier.ronny@gmail.com> |
shared: add formats-util.h |
401cb61499f446c7c1579a160eeef435afd525fd |
|
03-Apr-2015 |
Tom Gundersen <teg@jklm.no> |
sd-device,udevd: fix spelling /ammend/amend/ |
1b14c3cfbe25f9bf1183bd26875f3c68847559c0 |
|
13-Mar-2015 |
Tom Gundersen <teg@jklm.no> |
udev: make set_usec_initialized() internal to libudev
Instead introduce ensure_usec_initialized(), which copies the timestamp if possible otherwise
sets it to now(CLOCK_MONOTONIC). |
ca2031fcc863fcdd4dd1594709918cb60cfd0e1b |
|
13-Mar-2015 |
David Herrmann <dh.herrmann@gmail.com> |
udev: dont use EWOULDBLOCK
EWOULDBLOCK is the same as EAGAIN, stop using it. |
6969c349df91a3cc5fc2cf559a14e32a84db969d |
|
12-Mar-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: improve handling of failed worker
The information in the db is stale, so it does not make sense to
expose it any longer. Also, don't drop the kernel event, but simply
pass it on to userspace without ammending it. |
090b6bc5205b924df4be3239b2f7d9c097fbb705 |
|
12-Mar-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: don't free event when killing the worker, wait until it has been reaped
This will allow us to clean up the device when we are notified about the worker being killed. |
dfc4b6acf088f71f717fce8866a5841091219fa5 |
|
09-Mar-2015 |
Tom Gundersen <teg@jklm.no> |
udev: simplify event_queue_update() and add debug logging
This essentially replaces
open("/run/udev/queue", O_WRONLY|O_CREAT|O_CLOEXEC|O_TRUNC|O_NOFOLLOW, 0444)
with
open("/run/udev/queue", O_WRONLY|O_CREAT|O_CLOEXEC|O_NOCTTY, 0644),
which is ok for our purposes. |
db93e063bdffe0a8b95fcc522aeacddf62d1a9f9 |
|
09-Mar-2015 |
Tom Gundersen <teg@jklm.no> |
udevd: close race in udev settle
The udev-settle guarantees that udevd is no longer processing any of the
events casued by udev-trigger. The way this works is that it sends a
synchronous PING to udevd after udev-trigger has ran, and when that returns
it knows that udevd has started processing the events from udev-trigger.
udev-settle will then wait for the event queue to empty before returning.
However, there was a race here, as we would only update the /run state at
the beginning of the event loop, before reading out new events and before
processing the ping.
That means that if the first uevent arrived in the same event-loop iteration
as the PING, we would return the ping before updating the queue state in /run
(which would happen on the next iteration).
The race window here is tiny (as the /run state would probably get updated
before udev-settle got a chance to read /run), but still a possibility.
Fix the problem by updating the /run state as the last step before returning
the PING.
We must still update it at the beginning of the loop as well, otherwise we
risk being stuck in poll() with a stale state in /run.
Reported-by: Daniel Drake <drake@endlessm.com> |
2eec67acbb00593e414549a7e5b35eb7dd776b1b |
|
23-Feb-2015 |
Thomas Hindoe Paaboel Andersen <phomes@gmail.com> |
remove unused includes
This patch removes includes that are not used. The removals were found with
include-what-you-use which checks if any of the symbols from a header is
in use. |
0a6f50c0afdfc434b492493bd9efab20cbee8623 |
|
12-Feb-2015 |
Thomas Hindoe Paaboel Andersen <phomes@gmail.com> |
include <poll.h> instead of <sys/poll.h>
include-what-you-use automatically does this and it makes finding
unnecessary harder to spot. The only content of poll.h is a include
of sys/poll.h so should be harmless. |
1fa2f38f0f011010bf57522b42fcc168856a7003 |
|
22-Jan-2015 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
Assorted format fixes
Types used for pids and uids in various interfaces are unpredictable.
Too bad. |
5ac0162c3af95efa08a07b84ff62ad32842922c7 |
|
05-Jan-2015 |
Lennart Poettering <lennart@poettering.net> |
udevadm,..: make --help output of udev tools more like the output of the various other tools |
d7b8eec7dc7fe307d3a08b32cf1a9ad4276ce6d5 |
|
28-Dec-2014 |
Lennart Poettering <lennart@poettering.net> |
tmpfiles: add new line type 'v' for creating btrfs subvolumes |
0254e9448f3c645758ed63618a3bbb13c242f5e7 |
|
24-Dec-2014 |
Shawn Paul Landden <shawn@churchofgit.com> |
util: fix strict aliasing violations in use of struct inotify_event v5
There is alot of cleanup that will have to happen to turn on
-fstrict-aliasing, but I think our code should be "correct" to the rule. |
f7c1ad4fd4190bee32db0aa26c8e9fe7e19d8816 |
|
10-Dec-2014 |
Lennart Poettering <lennart@poettering.net> |
core: unify how we iterate over inotify events
Let's add some syntactic sugar for iterating through inotify events, and
use it everywhere. |
523c620bcd657f22cb52e6b78881cbb1f7d6832a |
|
03-Dec-2014 |
Tom Gundersen <teg@jklm.no> |
udevd: don't take reference for NULL rtnl object |
56f64d95763a799ba4475daf44d8e9f72a1bd474 |
|
28-Nov-2014 |
Michal Schmidt <mschmidt@redhat.com> |
treewide: use log_*_errno whenever %m is in the format string
If the format string contains %m, clearly errno must have a meaningful
value, so we might as well use log_*_errno to have ERRNO= logged.
Using:
find . -name '*.[ch]' | xargs sed -r -i -e \
's/log_(debug|info|notice|warning|error|emergency)\((".*%m.*")/log_\1_errno(errno, \2/'
Plus some whitespace, linewrap, and indent adjustments. |
6872b0ddc4b748ba2dbe7e74e3bbde46d17a2656 |
|
28-Nov-2014 |
Tom Gundersen <teg@jklm.no> |
udevd: don't set receive buffer size when socket activated
The socket unit does this, so no need to redo it in udevd. |
ff49bc3212cb07d850dcfd59940539773a0be26f |
|
28-Nov-2014 |
Michal Schmidt <mschmidt@redhat.com> |
treewide: drop unnecessary trailing \n in log_*() calls |
da927ba997d68401563b927f92e6e40e021a8e5c |
|
28-Nov-2014 |
Michal Schmidt <mschmidt@redhat.com> |
treewide: no need to negate errno for log_*_errno()
It corrrectly handles both positive and negative errno values. |
0a1beeb64207eaa88ab9236787b1cbc2f704ae14 |
|
28-Nov-2014 |
Michal Schmidt <mschmidt@redhat.com> |
treewide: auto-convert the simple cases to log_*_errno()
As a followup to 086891e5c1 "log: add an "error" parameter to all
low-level logging calls and intrdouce log_error_errno() as log calls
that take error numbers", use sed to convert the simple cases to use
the new macros:
find . -name '*.[ch]' | xargs sed -r -i -e \
's/log_(debug|info|notice|warning|error|emergency)\("(.*)%s"(.*), strerror\(-([a-zA-Z_]+)\)\);/log_\1_errno(-\4, "\2%m"\3);/'
Multi-line log_*() invocations are not covered.
And we also should add log_unit_*_errno(). |
adeba5008eac3105ae59256dedd087ebe006a9e6 |
|
13-Nov-2014 |
Kay Sievers <kay@vrfy.org> |
udev: support ENV{}=="" global property matches |
41b848b0ea674dba135d5d5f82b87d126d967fcf |
|
13-Nov-2014 |
Kay Sievers <kay@vrfy.org> |
udev: move global property handling from libudev to udevd |
25e773eeb4f853804e1bf0dbd9a184f23e9b2a97 |
|
13-Nov-2014 |
Kay Sievers <kay@vrfy.org> |
udev: switch to systemd logging functions |
b5884878a2874447b2a9f07f324a7cd909d96d48 |
|
07-Nov-2014 |
Lennart Poettering <lennart@poettering.net> |
util: simplify proc_cmdline() to reuse get_process_cmdline()
Also, make all parsing of the kernel cmdline non-fatal. |
3f85ef0f05ffc51e19f86fb83a1c51e8e3cd6817 |
|
06-Nov-2014 |
Harald Hoyer <harald@redhat.com> |
s/commandline/command line/g |
cfe2061add5479710f6597899d632e64c54e62ef |
|
05-Nov-2014 |
David Herrmann <dh.herrmann@gmail.com> |
udev: avoid magic constants in kernel-cmdline parsers
Lets recognize the fact that startswith() returns a pointer to the tail on
success. Use it instead of hard-coding string-lengths as magic constants. |
f671774f52838d35d78e62ddcb781b5b65b3373f |
|
05-Nov-2014 |
Richard W.M. Jones <rjones@redhat.com> |
udev: Fix parsing of udev.event-timeout kernel parameter. |
cc56fafeebf814ef035e549115cf1850e6473fa5 |
|
23-Oct-2014 |
WaLyong Cho <walyong.cho@samsung.com> |
mac: rename apis with mac_{selinux/smack}_ prefix |
25773e7fc59b4ce53d67da4e18bfe4d13ab0b14b |
|
18-Sep-2014 |
Tom Gundersen <teg@jklm.no> |
udevd: don't fail if /run/udev exists |
65fea570f03df51dadc06a3e0d261a71fe62aa01 |
|
18-Sep-2014 |
Tom Gundersen <teg@jklm.no> |
udev: fix typos
Spotted by Andreas Henriksson. |
d457ff8319b1e7c522c146f75e272f1226f4720c |
|
18-Sep-2014 |
Tom Gundersen <teg@jklm.no> |
udevd: check return of various functions
One reported by Coverity. Fixes CID #996252. |
6f5cf8a8b1de763383f7382821147e538b7dbd6d |
|
18-Sep-2014 |
Tom Gundersen <teg@jklm.no> |
udevd: parse_argv - warn if argumens are invalid
Found by Coverity. Fixes CID #1238780. |
f1e8664e4a86f9b9b8d8a001d886d69f1ac42e9b |
|
16-Sep-2014 |
Tom Gundersen <teg@jklm.no> |
udevd: use safe_ato*() in place of strto*() |
4d6dac13ad376cb537647741c45185395beb3e9c |
|
16-Sep-2014 |
Tom Gundersen <teg@jklm.no> |
udev: apply permissions to static nodes before signallying READY
Processes expecting static nodes to have the right permissions may order themselves after systemd-udevd.service,
make sure that actually guarantees what is expected. |
ebc164ef40cfa0fa01ce77a6a966129cc611d4ff |
|
16-Sep-2014 |
Tom Gundersen <teg@jklm.no> |
udev: only print after final log level has been determined
This delays label_init(), and drops the (duplicate) printing of version
information. |
3f56f784b98a4b0ad45409a9a19fd787cd7ae455 |
|
16-Sep-2014 |
Tom Gundersen <teg@jklm.no> |
udevd: initialize epoll_event structs on allocation
Also move the rest of event initialization next to the event loop (no functional change). |
5c67cf2774a8b964f4d7cd92a4c447da81ac6087 |
|
16-Sep-2014 |
Tom Gundersen <teg@jklm.no> |
udev: don't close std{in,out,err}
Rather than printing debug output to stderr and redirecting this to /dev/null when not wanted,
use the correct log_*() function in the first place. |
959d654105c1303d0c475868a51834db2f7b6099 |
|
16-Sep-2014 |
Tom Gundersen <teg@jklm.no> |
udev: drop duplicate logging
Once upon a time logging during early boot was unreliable, so extra logging messages were
sent by udev to stderr. That is no longer a concern, so drop all fprintf() calls from udved. |
bba7a48439e63defa20641b140522eac55fc1a1e |
|
16-Sep-2014 |
Tom Gundersen <teg@jklm.no> |
udev: split out parse_argv()
Also rename some global variables to arg_* to make it clearer where they come from. |
ed216e1ff0fdd7950b662b9ce7cbb5ca40b575a1 |
|
16-Sep-2014 |
Tom Gundersen <teg@jklm.no> |
udev: split out help and modernise a bit |
671174136525ddf208cdbe75d6d6bd159afa961f |
|
11-Sep-2014 |
Tom Gundersen <teg@jklm.no> |
udev: timeout - warn after a third of the timeout before killing |
b5338a19864ac3f5632aee48069a669479621dca |
|
10-Sep-2014 |
Tom Gundersen <teg@jklm.no> |
udev: timeout - increase timeout
Some kernel modules still take more than one minute to insmod, we no longer rely on the timeout
killing insmod within a given period of time, so just bump this to a much higher value. Its only
purpose is to make sure that nothing stays aronud forever. |
9d19a679f23c7a72c326cbbbf44e0c9f423dec5d |
|
09-Sep-2014 |
Tom Gundersen <teg@jklm.no> |
udev - drop print_kmsg
The only remaining user was 'starting version XXX', which is now logged using log_info(). |
4c83d994566718043e61e568cc214bdc4587f869 |
|
09-Sep-2014 |
Tom Gundersen <teg@jklm.no> |
udev: event - keep one rtnl per worker, rather than per event
Creating the rtnl context is cheap, but freeing it may not be, due to
synchronous close().
Also drop some excessive logging. We now log about the changing ifname
exactly once. |
2e92633dbae52f5ac9b7b2e068935990d475d2cd |
|
30-Aug-2014 |
Kay Sievers <kay@vrfy.org> |
udev: bump event timeout to 60 seconds |
be2ea723b1d023b3d385d3b791ee4607cbfb20ca |
|
30-Aug-2014 |
Kay Sievers <kay@vrfy.org> |
udev: remove userspace firmware loading support |
a2a5291b3f5ab6ed4c92f51d0fd10a03047380d8 |
|
31-Jul-2014 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
Reject invalid quoted strings
String which ended in an unfinished quote were accepted, potentially
with bad memory accesses.
Reject anything which ends in a unfished quote, or contains
non-whitespace characters right after the closing quote.
_FOREACH_WORD now returns the invalid character in *state. But this return
value is not checked anywhere yet.
Also, make 'word' and 'state' variables const pointers, and rename 'w'
to 'word' in various places. Things are easier to read if the same name
is used consistently.
mbiebl_> am I correct that something like this doesn't work
mbiebl_> ExecStart=/usr/bin/encfs --extpass='/bin/systemd-ask-passwd "Unlock EncFS"'
mbiebl_> systemd seems to strip of the quotes
mbiebl_> systemctl status shows
mbiebl_> ExecStart=/usr/bin/encfs --extpass='/bin/systemd-ask-password Unlock EncFS $RootDir $MountPoint
mbiebl_> which is pretty weird |
9ec6e95b046de71c0198cb9d17acc5462dc76c74 |
|
29-Jul-2014 |
Kay Sievers <kay@vrfy.org> |
udev: place opening { at the same line as the function declaration |
dd5eddd28a74a49607a8fffcaf960040dba98479 |
|
29-Jul-2014 |
Kay Sievers <kay@vrfy.org> |
udev: unify event timeout handling |
9719859c07aa13539ed2cd4b31972cd30f678543 |
|
29-Jul-2014 |
Hannes Reinecke <hare@suse.de> |
udevd: add --event-timeout commandline option
Some events take longer than the default 30 seconds. Killing those
events will leave the machine halfway configured.
Add a commandline option '--event-timeout' to handle these cases. |
2e5b17d01347d3c3118be2b8ad63d20415dbb1f0 |
|
24-Jul-2014 |
Kay Sievers <kay@vrfy.org> |
udev: exclude MD from block device ownership event locking
MD instantiates devices at open(). This is incomptible with the
locking logic, as the "change" event emitted when stopping a
device will bring it back. |
47a3fa0f7679521b85f7aeba9e245c52cc7bb2cb |
|
10-Jun-2014 |
Thomas Hindoe Paaboel Andersen <phomes@gmail.com> |
udev: check the return value from udev_enumerate_scan_devices
The return value from udev_enumerate_scan_devices was stored but
never used. I assume this was meant to be checked. |
638ca89c53e2b897cfb3f627f4acbc7d09af2f4c |
|
10-Jun-2014 |
Christian Hesse <mail@eworm.de> |
udev: really exclude device-mapper from block device ownership event locking
Arguments were wrong order, no?
This fixes commits:
e918a1b5a94f270186dca59156354acd2a596494
3d06f4183470d42361303086ed9dedd29c0ffc1b |
02ba8fb3357daf57f6120ac512fb464a4c623419 |
|
04-Jun-2014 |
Kay Sievers <kay@vrfy.org> |
udev: guard REREADPT by exclusive lock instead of O_EXCL |
e9fc29f4ecc9509ccc02eb8a014341e26c0d7831 |
|
04-Jun-2014 |
Kay Sievers <kay@vrfy.org> |
udev: make sure we always get "change" for the disk
The kernel will return 0 for REREADPT when no partition table
is found, we have to send out "change" ourselves. |
10fab50a3091e0b819c3ddab5a7c07acf750c050 |
|
04-Jun-2014 |
Kay Sievers <kay@vrfy.org> |
udev: guard REREADP logic with open(O_ECXL) |
ede344452a54e1c53f541cad12a06269a4fe96a9 |
|
04-Jun-2014 |
Kay Sievers <kay@vrfy.org> |
udev: try first re-reading the partition table
mounted partitions:
# dd if=/dev/zero of=/dev/sda bs=1 count=1
UDEV [4157.369250] change .../0:0:0:0/block/sda (block)
UDEV [4157.375059] change .../0:0:0:0/block/sda/sda1 (block)
UDEV [4157.397088] change .../0:0:0:0/block/sda/sda2 (block)
UDEV [4157.404842] change .../0:0:0:0/block/sda/sda4 (block)
unmounted partitions:
# dd if=/dev/zero of=/dev/sdb bs=1 count=1
UDEV [4163.450217] remove .../target6:0:0/6:0:0:0/block/sdb/sdb1 (block)
UDEV [4163.593167] change .../target6:0:0/6:0:0:0/block/sdb (block)
UDEV [4163.713982] add .../target6:0:0/6:0:0:0/block/sdb/sdb1 (block) |
f3a740a5dae792fb6b2d411022ce8c29ced1c3f1 |
|
04-Jun-2014 |
Kay Sievers <kay@vrfy.org> |
udev: synthesize "change' events for partitions when tools change the disk
This should make sure that fdisk-like programs will automatically
cause an update of all partitions, just like mkfs-like programs cause
an update of the partition. |
edd32000c806e4527c5f376d138f7bff07724c26 |
|
04-Jun-2014 |
Kay Sievers <kay@vrfy.org> |
udevd: inotify - modernizations |
e918a1b5a94f270186dca59156354acd2a596494 |
|
03-Jun-2014 |
Kay Sievers <kay@vrfy.org> |
udev: exclude device-mapper from block device ownership event locking |
3d06f4183470d42361303086ed9dedd29c0ffc1b |
|
03-Jun-2014 |
Kay Sievers <kay@vrfy.org> |
udev: always close lock file descriptor
https://bugs.freedesktop.org/show_bug.cgi?id=79576 |
bf9bead187802a52a1f376a03caee762d663e945 |
|
17-May-2014 |
Thomas Hindoe Paaboel Andersen <phomes@gmail.com> |
udev: avoid use of uninitialized err
After 1ea972174baba40dbc80c51cbfc4edc49764b59b err is no longer
set unless we hit a special case. Initialize it to 0 and remove
a check that will never fail. |
1ea972174baba40dbc80c51cbfc4edc49764b59b |
|
15-May-2014 |
Kay Sievers <kay@vrfy.org> |
udev: do not skip the execution of RUN when renaming a network device fails |
3ebdb81ef088afd3b4c72b516beb5610f8c93a0d |
|
14-Apr-2014 |
Kay Sievers <kay@vrfy.org> |
udev: serialize/synchronize block device event handling with file locks |
9ea28c55a2488e6cd4a44ac5786f12b71ad5bc9f |
|
14-Apr-2014 |
Kay Sievers <kay@vrfy.org> |
udev: remove seqnum API and all assumptions about seqnums
The way the kernel namespaces have been implemented breaks assumptions
udev made regarding uevent sequence numbers. Creating devices in a
namespace "steals" uevents and its sequence numbers from the host. It
confuses the "udevadmin settle" logic, which might block until util a
timeout is reached, even when no uevent is pending.
Remove any assumptions about sequence numbers and deprecate libudev's
API exposing these numbers; none of that can reliably be used anymore
when namespaces are involved. |
c8a202b7d47f9d6bba3100a208abdadfc383499e |
|
13-Feb-2014 |
Lennart Poettering <lennart@poettering.net> |
everywhere: always use O_CLOEXEC where it makes sense |
955d98c9c1104d469c2989dbfb58f58ee6fe9bdc |
|
13-Feb-2014 |
Lennart Poettering <lennart@poettering.net> |
everywhere: make use of new0() and macro() macros, and stop using perror() |
29804cc1e0f37ee34301530fd7f1eb8550be464e |
|
31-Jan-2014 |
Greg KH <gregkh@linuxfoundation.org> |
use memzero(foo, length); for all memset(foo, 0, length); calls
In trying to track down a stupid linker bug, I noticed a bunch of
memset() calls that should be using memzero() to make it more "obvious"
that the options are correct (i.e. 0 is not the length, but the data to
set). So fix up all current calls to memset(foo, 0, length) to
memzero(foo, length). |
ed14edc04f9355b0d3fc769638b167decf27dc23 |
|
29-Dec-2013 |
Kay Sievers <kay@vrfy.org> |
udev: LOG_PRIORITY -> LOG_LEVEL |
9f6445e34a57c270f013c9416c123e56261553dd |
|
24-Dec-2013 |
Lennart Poettering <lennart@poettering.net> |
log: log_error() and friends add a newline after each line anyway, so avoid including it in the log strings |
e3dc56a21907d5c028e11bfb750447614e0ed900 |
|
12-Nov-2013 |
Kay Sievers <kay@vrfy.org> |
udev: declare some symbols static |
74df0fca09b3c31ed19e14ba80f996fdff772417 |
|
06-Nov-2013 |
Lennart Poettering <lennart@poettering.net> |
util: unify reading of /proc/cmdline
Instead of individually checking for containers in each user do this
once in a new call proc_cmdline() that read the file only if we are not
in a container. |
97fec53e5e91222f43fc89d0ad45fa197742a363 |
|
13-Oct-2013 |
Zbigniew Jędrzejewski-Szmek <zbyszek@in.waw.pl> |
udev: use initialization instead of zeroing in one place |
73814ca287cafcfa488f7ac85b25bc8584334db3 |
|
22-Aug-2013 |
Colin Walters <walters@verbum.org> |
Revert "udevd: simplify sigterm check"
This reverts commit 47e737dc13bf4251ae5a2249ec29b34503ed92e1 - it
introduced a use-after-free. The only way the code would get simpler
is with a cleanup function, but eh, not worth it for just this one
bit.
Reviewed by kay on IRC. |
47e737dc13bf4251ae5a2249ec29b34503ed92e1 |
|
15-Aug-2013 |
Kay Sievers <kay@vrfy.org> |
udevd: simplify sigterm check |
689a97f52383110bf0da049e8f6294993f4020dd |
|
09-Aug-2013 |
Tom Gundersen <teg@jklm.no> |
udevd: respect the log-level set in /etc/udev/udev.conf
A regression introduced when we moved to systemd's logging is that the only
way to adjust the log-level of the udev daemon is via the env var, kernel
commandline or the commandline.
This reintroduces support for specifying this in the configuration file. |
84b6ad702e64db534f67ce32d4dd2fec00a16784 |
|
16-Jul-2013 |
Tom Gundersen <teg@jklm.no> |
udev: export tags of "dead" device nodes to /run/udev/static_node-tags/
Based on a patch by Kay Sievers.
A tag is exported at boot as a symlinks to the device node in the folder
/run/udev/static_node-tags/<tagname>/, if the device node exists.
These tags are cleaned up by udevadm info --cleanup-db, but are otherwise
never removed. |
edeb68c53f1cdc452016b4c8512586a70b1262e3 |
|
08-Jul-2013 |
Tom Gundersen <teg@jklm.no> |
static-nodes: move creation of static nodes from udevd to tmpfiles
As of kmod v14, it is possible to export the static node information from
/lib/modules/`uname -r`/modules.devname in tmpfiles.d(5) format.
Use this functionality to let systemd-tmpfilesd create the static device nodes
at boot, and drop the functionality from systemd-udevd.
As an effect of this we can move from systemd-udevd to systemd-tmpfiles-setup-dev:
* the conditional CAP_MKNOD (replaced by checking if /sys is mounted rw)
* ordering before local-fs-pre.target (see 89d09e1b5c65a2d97840f682e0932c8bb499f166) |
7027ff61a34a12487712b382a061c654acc3a679 |
|
16-Apr-2013 |
Lennart Poettering <lennart@poettering.net> |
nspawn: introduce the new /machine/ tree in the cgroup tree and move containers there
Containers will now carry a label (normally derived from the root
directory name, but configurable by the user), and the container's root
cgroup is /machine/<label>. This label is called "machine name", and can
cover both containers and VMs (as soon as libvirt also makes use of
/machine/).
libsystemd-login can be used to query the machine name from a process.
This patch also includes numerous clean-ups for the cgroup code. |
574d5f2dfc25226afc718aa5ba1a145fe5cad221 |
|
03-Apr-2013 |
Lennart Poettering <lennart@poettering.net> |
util: rename write_one_line_file() to write_string_file()
You can write much more than just one line with this call (and we
frequently do), so let's correct the naming. |
f45928521249bbaf5dbea84933ae2fcaf5354080 |
|
29-Mar-2013 |
Václav PavlÃn < <vpavlin@redhat.com> |
udev: check return value of uname. |
d8d4bee76cf3b40ea923bc57d44aa0815ca9b5ff |
|
28-Mar-2013 |
Kay Sievers <kay@vrfy.org> |
build-sys: fix HAVE/ENABLE_FIRMWARE
https://bugs.freedesktop.org/show_bug.cgi?id=62864 |
8cc3f8c0bcd23bb68166cb197a4c541d7621b19c |
|
25-Mar-2013 |
Harald Hoyer <harald@redhat.com> |
udevd.c: set udev children_max according to CPU count
Setting children_max according to RAM leads to too much concurrent I/O. |
61e536e1b7f3a7448428a05bafe1ea64d7e51938 |
|
18-Mar-2013 |
Kay Sievers <kay@vrfy.org> |
udev: ifdef all firmware special handling |
1d600df55bdba448b05d6f8293028d6b6702914b |
|
03-Mar-2013 |
Kay Sievers <kay@vrfy.org> |
udev: remove database conversion code |
a5c32cff1f56afe6f0c6c70d91a88a7a8238b2d7 |
|
14-Feb-2013 |
Harald Hoyer <harald@redhat.com> |
honor SELinux labels, when creating and writing config files
Also split out some fileio functions to fileio.c and provide a SELinux
aware pendant in fileio-label.c
see https://bugzilla.redhat.com/show_bug.cgi?id=881577 |
090be8653471e1abe3f1cdd32eaad0fbd65f85cd |
|
13-Feb-2013 |
Thomas Hindoe Paaboel Andersen <phomes@gmail.com> |
use streq instead of strcmp |
d5a89d7dc17a5ba5cf4fc71f82963c5c94a31c3d |
|
09-Jan-2013 |
Kay Sievers <kay@vrfy.org> |
udev: move string copy functions to shared/ |
5bbbe461fd4d133eac49f41210e2fd4846f577d8 |
|
22-Dec-2012 |
Lukas Nykryn <lnykryn@redhat.com> |
udevd: add missing ':' to getopt_long 'e'
Parameter -e is set without additional argument in getopt
and this leads to segfault when calling 'systemd-udevd -e'. |
1298001ec5e320f9f9b6a9b925c8939b2579396d |
|
12-Nov-2012 |
Kay Sievers <kay@vrfy.org> |
use the same email address everywhere |
40fe8b11be9c1a1b38b91db097a5d6ebfa99304c |
|
12-Nov-2012 |
Kay Sievers <kay@vrfy.org> |
udev: use usec_t and now() |
ea6039a30929ff845859ed601594546d71894d84 |
|
07-Oct-2012 |
Kay Sievers <kay@vrfy.org> |
udev: allow firmware requests to bypass the dependency tracking
The removal of the TIMEOUT= handling in udevd put firmware requests into the
devpath parent/child dependency tracking. Drivers which block in module_init()
asking userspace for firmware ran into a 30 sec device timeout.
The whole firmware loading willl hopefully move into the kernel and
the fragile-since-day-one fake async driver-core device dance involving
udev can be retired:
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux.git;a=commit;h=abb139e75c2cdbb955e840d6331cb5863e409d0e |
c53158818d8cdaf46b3f1b5299b9bda118a1043f |
|
13-Sep-2012 |
Thomas Hindoe Paaboel Andersen <phomes@gmail.com> |
man: fix a bunch of typos in docs
https://bugs.freedesktop.org/show_bug.cgi?id=54501 |
01ed0e2307f3b889b64165fd503d79b4568c47e1 |
|
21-Aug-2012 |
Lennart Poettering <lennart@poettering.net> |
dev-setup: make NULL as parameter for dev_setup() equivalent to "" |
8f0e73f250f4a397ea07d29a339bd7e64d077612 |
|
21-Aug-2012 |
Dave Reisner <dreisner@archlinux.org> |
dev-setup: allow a path prefix for use in chroots
With this adjustment, we can reuse this code elsewhere, such as in
nspawn. |
7781e063e8e9d3e92e4e158e1588b885808cda24 |
|
08-Aug-2012 |
Kay Sievers <kay@vrfy.org> |
udev: re-initialize builtins in the daemon process, not in the worker |
023b9d33e93ea79b6f81daab82cfdca35360e2d0 |
|
30-Jul-2012 |
Kay Sievers <kay@vrfy.org> |
udev: set log.c's log level from udev's kernel command line option |
c6eefe366470e1cf6c94f52dd923dc822eb5d027 |
|
14-Jul-2012 |
Kay Sievers <kay@vrfy.org> |
udev: avoid creating /dev/kmsg with fopen() to support CONFIG_PRINTK=n |
4b2615684b312a6457d9fdd8f455bc2a0def9bc9 |
|
13-Jul-2012 |
Lennart Poettering <lennart@poettering.net> |
log: correct usage of logging API at a few places |
47ef94ac5f39db6c5c18be10afe32397a0a8d5cc |
|
05-Jul-2012 |
Kay Sievers <kay@vrfy.org> |
udev: add some O_CLOEXEC |
ef8a2bf6484bb0f82248ceb10a55509a93d82c6b |
|
02-Jul-2012 |
Kay Sievers <kay@vrfy.org> |
udev: static nodes - fix default permissions if no rules is given
<falconindy> kay: just curious -- it looks like nodes created by udev from
modules.devname all have 000 perms, and there's nothing in udev that attempts
to change this. is it intended?
<falconindy> c--------- 1 root root 10, 223 Jul 1 23:10 uinput
<kay> falconindy: we might miss the default of 0600
<falconindy> seems like it
<kay> falconindy: stuff that has a rule works i guess
<kay> falconindy: i'll add the 0600 now |
ddbe6850b2ae490ab359a050b190cf96e1559cd7 |
|
02-Jul-2012 |
Dave Reisner <dreisner@archlinux.org> |
udevd: fix bogus mkdir invocation
The filename parameter passed to mkdir can't contain anything but a
garbage value at this point. This was meant to be the full pathname to
the new udev DB, as the mkdir_parents() call before it won't create the
trailing child directory.
[replace mkdir_parents() + mkdir() with mkdir_p() -- kay] |
b80680eda9e615711414b7efa2d81e4ac1496b6a |
|
02-Jul-2012 |
Dave Reisner <dreisner@archlinux.org> |
udevd: use ROOTPREFIX to create path to modules.devname |
72a2af7aa9d9f64f320b3f2cc21e78f11b811f1e |
|
27-Jun-2012 |
Kay Sievers <kay@vrfy.org> |
udev: use the matching binary name "systemd-udevd" in log messages |
e6f86cac1619d504ea51c08608fa60b8e4359c52 |
|
04-Jun-2012 |
Kay Sievers <kay@vrfy.org> |
udev: kernel cmdline - accept rd.* parameters |
145dae7eb3367933e0d0bfcde3a7a77bb549aa61 |
|
04-Jun-2012 |
Kay Sievers <kay@vrfy.org> |
udev: reset /proc/self/oom_score_adj in worker processes
Only the main daemon process should be excluded from OOM handling,
not the worker processes or their child processes. |
d315bba6f6c9d929acdbf3c37cbcf6c9a72365ac |
|
04-Jun-2012 |
Kay Sievers <kay@vrfy.org> |
udev: limit minimum worker count to 16 |
a52289f7f50b3e851bf831cb692eea9ff02e9b50 |
|
04-Jun-2012 |
Lauri Kasanen <curaga@operamail.com> |
udev: lower the starting children_max -> drop the minimum required RAM from 23mb to 5mb
Udev was the limiting factor for us on low-RAM systems.
Given an average RSS of 180kb, 128 workers would require ~23mb of RAM.
Now, please consider what happens when there is only, say, 15mb free.
Udev protects itself from OOM, and the kernel can do nothing but panic.
28 workers * 0.18mb = ~5mb. This change should not affect more powerful
systems much, given that they still get the addition from the amount of RAM. |
0f9963a8b8c1d60a467c0cdc04d5e7bfce9d7c75 |
|
31-May-2012 |
Kay Sievers <kay@vrfy.org> |
Revert "label: fix systemd-udev labeling of /run directory."
This reverts commit 9b5af248f04b6cad8a5bca836e89a39e9f6823d9.
Udev now explicitely labels only files/directories in /dev. The selinux
array API is not released and will not work on other distros at this moment. |
667e392408d6b56db981d8e76c31990501d0faf3 |
|
31-May-2012 |
Kay Sievers <kay@vrfy.org> |
udev: do not selinux label files in /run/udev |
d2e54fae5ca7a0f71b5ac8b356a589ff0a09ea0a |
|
31-May-2012 |
Kay Sievers <kay@vrfy.org> |
mkdir: append _label to all mkdir() calls that explicitly set the selinux context |
9b5af248f04b6cad8a5bca836e89a39e9f6823d9 |
|
31-May-2012 |
Daniel J Walsh <dwalsh@redhat.com> |
label: fix systemd-udev labeling of /run directory.
systemd-udev is currently incorrectly labeling /run/udev/* content because it is
using selinux prefix labeling of /dev. This patch will allow systemd-udev to
use prefix labeling of /dev and /run. |
b27ee00bf5e377a4b59b454c68c8617ea9666bc8 |
|
29-Apr-2012 |
Lucas De Marchi <lucas.demarchi@profusion.mobi> |
udev: use container_of() macro |
c693ccc0a2a2d44eecf6f5eccaa3d1948c5e9532 |
|
26-Apr-2012 |
Kay Sievers <kay@vrfy.org> |
udev: use only oom_score_adj interface |
5ba2dc259f3cdd8fddef68cfd28380a32534e49a |
|
17-Apr-2012 |
Kay Sievers <kay@vrfy.org> |
udev: unify /dev static symlink setup |
e9a5ef7cddcfcdb29b5aef3896931132b6fd5165 |
|
17-Apr-2012 |
Kay Sievers <kay@vrfy.org> |
selinux: unify systemd and udev code |
3b49d09a3d34ac462573aa96d66c70e9a60417e4 |
|
17-Apr-2012 |
Kay Sievers <kay@vrfy.org> |
udev: kill udev_selinux_setfscreateconat() |
9e13dbae509605dba1bde7e7385086b59acb428e |
|
17-Apr-2012 |
Kay Sievers <kay@vrfy.org> |
udev: replace util_create_path() with mkdir_parents() |
6ada823a9a0979ea145fd70add1007c21caa45c0 |
|
16-Apr-2012 |
Kay Sievers <kay@vrfy.org> |
udev: remove configuration options for /dev, /sys, /run directories |
8fef0ff25c9fd7e5bb99d66f43c6357e4996a3cc |
|
16-Apr-2012 |
Kay Sievers <kay@vrfy.org> |
udev: replace ARRAY_SIZE() with ELEMENTSOF() |
194bbe33382f5365be3865ed1779147cb680f1d3 |
|
15-Apr-2012 |
Kay Sievers <kay@vrfy.org> |
udev: cleanup the udev cgroup when the daemon enters the idle state |
b49d9b50cfd377f28de0886330ba7bbd231fb472 |
|
13-Apr-2012 |
Kay Sievers <kay@vrfy.org> |
udev: fix a few issues detected by the llvm static analyzer |
04a9d3a00a9290cbf254d0b0ba2ce4521be632ae |
|
10-Apr-2012 |
Kay Sievers <kay@vrfy.org> |
udev: fix gcc warnings showing up after adding $(AM_CFLAGS) |
07cd4fc16806783d3b6b3008db222ac6a024805c |
|
08-Apr-2012 |
Kay Sievers <kay@vrfy.org> |
udev: remove support for /lib/udev/devices/; tmpfiles should be used |
baa30fbc2c04b23209d0b8fb3c86cd15ef9ea81a |
|
08-Apr-2012 |
Kay Sievers <kay@vrfy.org> |
udev: switch to systemd logging functions |
3e2147858f21943d5f4a781c60f33ac22c6096ed |
|
04-Apr-2012 |
Kay Sievers <kay.sievers@vrfy.org> |
move imported udev into place |