1
0
mirror of https://github.com/systemd/systemd.git synced 2024-11-08 11:27:32 +03:00
Commit Graph

588 Commits

Author SHA1 Message Date
Kay Sievers
fc416258f3 udevd: do not wrongly delay events for devices with swapped names
Renaming network devices might delay events for the other device, which has
the same devpath in the meantime as the original event. Causing a delay until
the timout of the event is reached.

Look at the ifindex/devnum of the devices to check if they are really
the same devices.
2010-10-13 13:08:29 +02:00
Kay Sievers
392ef7a28a udevd: add sd-daemon.c 2010-10-07 14:59:11 +02:00
Martin Pitt
1079014420 Clarify WAIT_FOR documentation
The path is relative to the sysfs device, so this provides an easy way to wait
for an attribute to appear.
2010-09-21 12:12:01 +02:00
Kay Sievers
326c5fc3ea set SELinux context on 'add' but not on 'change' events 2010-08-31 21:29:21 +02:00
Martin Pitt
83184d008b udev(7) manpage: Fix description of $attr
Fix the manpage to describe the real behaviour of $attr: It doesn't search all
parent devices any more, just the one selected by KERNELS etc.

https://launchpad.net/bugs/348513
2010-08-27 16:56:32 +02:00
Luca Tettamanti
c61eea9459 Add support for oom_score_adj
/proc/<pid>/oom_adj has been deprecated (kernel v2.6.36) due to the
rework of the badness heuristic; oom_score_adj is the replacement.
Keep a fallback to the old interface for compatibility with older
kernels.

See http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=a63d83f427fbce97a6cea0db2e64b0eb8435cd10

Signed-off-by: Martin Pitt <martin.pitt@ubuntu.com>
2010-08-25 16:50:30 +02:00
Kay Sievers
13f90be7a3 udevd: remove unneeded credential passing from init_notify() 2010-08-25 16:26:54 +02:00
Martin Pitt
6593e8961a udev(7): Point out required extension, and remove some confusion
Rules files must end in .rules.

Also drop the redundant and confusing sentence about "file names must be
unique". What is really meant is explained in a better way in the paragraph
above.

https://launchpad.net/bugs/616108
2010-08-20 12:19:23 +02:00
Kay Sievers
c25bfbfb1b udevd: add pid to kmsg logs 2010-08-19 08:49:43 +02:00
Kay Sievers
ebd189621f do not rename the database on device rename
Harald Hoyer discovered some incorrect behavior while debugging
problems with network interface renaming:

Udev events might be queued for devices which are renamed. A new
device registered the same time may claime the old name and create
a database entry for it. The current rename logic would move over
this databse entry to the wrong device.
2010-08-11 14:34:32 +02:00
Kay Sievers
ce9a42bec4 always log error when renaming a network interface fails 2010-08-11 14:29:49 +02:00
Harald Hoyer
09c0310302 udev-event.c: rename interface to <src>-<dest>, if <dest> taken
e.g. if eth0 should be eth3 and eth3 is waiting to be renamed,
eth0 was renamed to eth0_rename. The kernel would take eth0 as the name
for a new interface and this new eth0 could also become eth0_rename, if
the target name is also taken. To prevent this name clash, the
interfaces are now renamed to <src>-<dest> and the rename is logged.
2010-08-10 16:46:48 +02:00
Yin Kangkai
08f11597f2 udevd: create static device links only when the target exists
For example, not all systems have PROC_KCORE enabled. Avoid a broken symbolic
link in those cases.

Signed-off-by: Yin Kangkai <kangkai.yin@intel.com>
Signed-off-by: Martin Pitt <martin.pitt@ubuntu.com>
2010-08-08 20:35:46 +02:00
Yin Kangkai
40929a0222 udevd: fix unref'ing of device in error path
Signed-off-by: Yin Kangkai <kangkai.yin@intel.com>
Signed-off-by: Martin Pitt <martin.pitt@ubuntu.com>
2010-08-08 20:29:13 +02:00
Kay Sievers
8e5a620b17 call util_delete_path() only when we actually deleted stuff 2010-08-03 12:13:53 +02:00
Yin Kangkai
4ab3c463d4 udevd: fix short options in getopt() 2010-08-03 08:11:43 +02:00
Yin Kangkai
27f4528b9a malloc()+memset() -> calloc() 2010-08-03 08:10:26 +02:00
Yin Kangkai
1851332c08 udevd: fix some memory leaks in error path
Signed-off-by: Yin Kangkai <kangkai.yin@intel.com>
2010-08-02 12:37:55 +02:00
Yin Kangkai
163c0365ff udevadm: fix short options in getopt() 2010-07-28 06:56:13 +02:00
Kay Sievers
35df38c36a udevd: init_notify() fix abstract namespace name handling 2010-07-11 23:57:11 +02:00
Kay Sievers
3b529da425 allow final assignment for OPTIONS:="nowatch"
A final assignemnt operator will disable any device watching by
inotify, and any possible later rules setting "watch" again will
be ignored.
2010-07-07 11:35:40 +02:00
Kay Sievers
a65aa40f8a udevd: in case we don't daemonize, send READY message to /sbin/init 2010-06-17 21:52:15 +02:00
Kay Sievers
7d2b68b734 IMPORT{cmdline}: start at first char after '=' 2010-05-31 11:04:42 +02:00
Kay Sievers
c4f6dcc4a5 add IMPORT{cmdline} 2010-05-31 01:13:03 +02:00
Kay Sievers
1182b9470f udevd: set umask before creating files/directories 2010-05-30 23:42:47 +02:00
Kay Sievers
b130944f99 man: udevd - update intro 2010-05-29 22:51:55 +02:00
Kay Sievers
8f7f1a2b52 man: add kernel command line parameters 2010-05-29 22:24:21 +02:00
Kay Sievers
9fa68615bb man: add static device nodes and udevd debug options 2010-05-28 15:11:36 +02:00
Kay Sievers
c830e98d6a udevd: read debug settings from kernel commandline 2010-05-28 12:07:27 +02:00
Kay Sievers
d4c1467f85 udevd: fix comments 2010-05-27 17:45:58 +02:00
Kay Sievers
337d102783 udevd: replace --debug-trace with --children-max 2010-05-27 17:41:51 +02:00
Kay Sievers
87d55ff672 childs -> children 2010-05-27 17:27:56 +02:00
Kay Sievers
88cbfb09ee while (1) -> for (;;) 2010-05-27 15:11:00 +02:00
Kay Sievers
d80f8ffd1a fix compilation with --enable-debug 2010-05-25 15:11:02 +02:00
Bryan Kadzban
4bfa5cf5c3 udevd: fix typo /proc/fd -> /proc/self/fd 2010-05-25 06:56:37 +02:00
Kay Sievers
63749b1a5f man: directly use 'refentry'
And make Lennart happy! :)
2010-05-24 17:00:15 +02:00
Kay Sievers
761dfddcc0 create static nodes provided by kernel modules to allow module autoloading 2010-05-20 17:09:04 +02:00
Kay Sievers
f2291cd07f fix tests and allow MODE=000 2010-05-20 14:51:18 +02:00
Kay Sievers
cb9a0eeeab udevd: create standard symlinks and handle /lib/udev/devices 2010-05-20 09:04:26 +02:00
Kay Sievers
c1332ae898 use default mode of 0600 for nodes if gid == 0 2010-05-20 06:24:45 +02:00
Kay Sievers
e85f5ec15f reset process priority before executing RUN+=
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=581235
2010-05-12 08:46:56 +02:00
Kay Sievers
79e1912b91 udevd: reload config only for *.rules files 2010-05-11 22:59:09 +02:00
Kay Sievers
d0d7b8d085 add info message when empty NAME is given 2010-05-07 22:57:20 +02:00
Kay Sievers
2f71757d1c man: udevadm trigger - the default is "change" not "add" 2010-05-05 15:37:56 +02:00
Kay Sievers
75cb1ac51e warn when renaming kernel-provided nodes instead of adding symlinks 2010-05-05 11:39:25 +02:00
Kay Sievers
6d80a7e83f remove debug output during rules parsing 2010-05-03 18:09:25 +02:00
Kay Sievers
c7cdd8b2d2 remove unused parameter from udev_node_mknod() 2010-05-03 18:08:51 +02:00
Michael Thayer
c00b776880 fix device node deletion
Signed-off-by: Michael Thayer <michael.thayer@sun.com>
2010-05-01 17:29:24 +02:00
Kay Sievers
665ee17def udevd: always try to find an idle worker instead of forking a new one
We special-handle events with a TIMEOUT= set, so they don't get queued
or wait for parent events to finish, to make sure we can handle them
as fast as possible.

With this change we first try to find an idle worker process before
forking a new one.
2010-04-26 12:25:59 +02:00
Kay Sievers
c1dbe11dc3 delete old tags when configuration changes 2010-04-23 09:01:56 +02:00
Kay Sievers
1dbfbfbea6 use the usual TAG+=, TAG= logic 2010-04-22 19:03:11 +02:00
Kay Sievers
3f896a2abd all to match against a given TAG== 2010-04-22 18:33:24 +02:00
Kay Sievers
28460195c2 add TAG= to improve event filtering and device enumeration 2010-04-22 18:12:36 +02:00
Kay Sievers
e7964b93e8 udevadm: info --export-db -- remove watch handle export 2010-04-22 06:24:47 +02:00
Kay Sievers
5d69a34caf fix previous commit 2010-04-21 15:43:05 +02:00
Kay Sievers
e9906fec71 remove left-over from ignore_remove and all_partitions 2010-04-21 15:11:57 +02:00
Kay Sievers
60067cc75a more readlink buffer size handling 2010-04-21 14:44:33 +02:00
Mathias Nyman
e925018786 remove buffer-overrun risk in readlink call
readlink does not write a nul character to the end of the
string it returns. Therefore ask for one fewer character
than the buffer size so there's always room for an extra \0.

Signed-off-by: Mathias Nyman <mathias.nyman@nokia.com>
Signed-off-by: Phil Carmody <ext-phil.2.carmody@nokia.com>
Signed-off-by: Martin Pitt <martin.pitt@ubuntu.com>
2010-04-21 13:41:14 +02:00
Kay Sievers
85f22036fc doc: add section about how *not* to rename device nodes
Thanks to Mario 'BitKoenig' Holbe <Mario.Holbe@tu-ilmenau.de>.
2010-04-20 07:29:51 +02:00
Kay Sievers
6252f9e732 delete only device nodes, not symlinks when deleting a devtmpfs node
http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=550152
2010-04-19 18:57:28 +02:00
Kay Sievers
9355f324e1 add O_NOFOLLOW when creating files in link stack 2010-04-19 18:55:10 +02:00
Marco d'Itri
db123fe9f0 doc: document the WAIT_FOR timeout 2010-04-19 12:47:02 +02:00
Kay Sievers
a89d342dfb remove "ignore_remove" option 2010-04-13 12:45:38 +02:00
Kay Sievers
1f084fe581 remove "all_partitions" option
We can not predict the major/minor of non-existing devices:
  $ grep . /sys/class/block/sd*/dev
  /sys/class/block/sda1/dev:259:524288
  /sys/class/block/sda2/dev:259:262144
  /sys/class/block/sda3/dev:259:786432
  /sys/class/block/sda4/dev:259:131072
  /sys/class/block/sda/dev:259:0
  /sys/class/block/sdb/dev:259:655360
  /sys/class/block/sdc/dev:259:393216

If this functionality is still needed for some broken hardware, it needs to be
solved with a tool not part of the udev package. Because such option is unreliable
and unsafe to use.
2010-04-13 08:52:48 +02:00
Kay Sievers
236fae6cf1 udevadm: trigger - switch default action from "add" to "change" 2010-04-12 17:56:32 +02:00
Kay Sievers
3ba7e651ad log info only if we actually delete the node 2010-04-12 17:13:37 +02:00
Kay Sievers
4b06c40935 replace "add|change" with "!remove" 2010-04-12 16:52:41 +02:00
Kay Sievers
5539f624e1 allow IMPORT{db}="KEY" 2010-04-12 15:58:05 +02:00
Kay Sievers
0ec5b5e142 unify/cleanup event handling 2010-04-12 15:51:16 +02:00
Kay Sievers
578cc8a808 do not reset SELinux context when the node was not touched 2010-03-17 09:15:18 +01:00
Kay Sievers
777239cb21 use major:minor as entries in watch directory 2010-03-10 18:54:35 +01:00
Kay Sievers
af24bb178e use major:minor as entries in symlink stack instead of devpath 2010-03-10 17:29:27 +01:00
Kay Sievers
a00ff5db02 udevadm: monitor - use / as separator in --subsystem-match=subsystem[/devtype] 2010-03-10 15:00:00 +01:00
Kay Sievers
fbb31cd6e1 libbudev-private: rename udev_list_entry_get_flag() 2010-03-10 14:52:42 +01:00
Kay Sievers
455f792e47 replace utimes() with utimensat() 2010-03-10 14:43:07 +01:00
Kay Sievers
044bd2bcc7 udevadm: fix untested and broken commit to set buffer size 2010-02-18 11:03:28 +01:00
Scott James Remnant
0fe3c26eab udevadm monitor: increase netlink buffer size
A common use (e.g. in Ubuntu) for udevadm monitor is to log the events
received by udev during boot; events can be lost of the buffer size isn't
increased as udevd does.

Signed-off-by: Scott James Remnant <scott@ubuntu.com>
2010-02-17 15:27:36 +00:00
Kay Sievers
7b4038a96f clarify message about not removed device node 2010-01-15 00:32:10 +01:00
Kay Sievers
889dd1061c do not remove device nodes of active kernel devices
We do no longer delete the primary device node while handling "remove"
events if the same kernel device is already re-created in the meantime.
This prevents the asynchronously running udev from removing and re-creating
primary device nodes for active devices.
2010-01-13 13:18:14 +01:00
Kay Sievers
6f1892dc7a udevd: inotify - do not parse rules at create but at close
We do not need to get notified about created files, only about moved
ones or files closed-after-writing.
2010-01-13 13:09:02 +01:00
Kay Sievers
d5a01cb8b3 udevadm: logging - copy va_list and do not use it twice 2009-12-25 16:14:22 +01:00
Kay Sievers
f46d2e54a8 remove UDEV_RUN environment variable
It handles only RUN but not IMPORT and PROGRAM. There is no sane way
to suppress program execution. Most important programs run with IMPORT
these days. Also events can no longer suppressed with the libudev
netlink messages, so UDEV_RUN does nothing useful and is just
inconsistent.
2009-12-25 15:23:45 +01:00
Kay Sievers
1d67ec16c4 fix typo in log message priority handling 2009-12-25 14:47:59 +01:00
Kay Sievers
299650f1e3 udevadm: info - fix info --root --query=name --path= for device without a device node
Subject: Bug#561279: udev: Crash location and first-level cause
Reply-To: Stephen Kitt <steve@sk2.org>, 561279@bugs.debian.org
2009-12-24 20:42:02 +01:00
Martin Pitt
7729cd2fad Clarify RUN/IMPORT documentation
Explain command/argument separation rules, search path, and quoting for RUN and
IMPORT.

http://bugs.debian.org/550206
2009-12-22 13:08:23 +01:00
Kay Sievers
5607391481 update mtime of nodes and links when we re-use them 2009-12-18 21:25:13 +01:00
Kay Sievers
3c1898863f remove remaining support for CONFIG_SYSFS_DEPRECATED 2009-12-15 16:14:14 +01:00
Kay Sievers
86f77493bd test-udev: remove "ignore_device" code 2009-11-16 23:40:27 +01:00
Kay Sievers
6d87ee2e00 print warning for BUS=, SYSFS{}=, ID= 2009-11-16 23:39:33 +01:00
Kay Sievers
cdae488a3f remove "ignore_device"
There is no way to ignore an event these days. Libudev events can
not be suppressed. It only prevents RUN keys from being executed,
which results in an inconsistent behavior in current setups.
2009-11-16 15:22:17 +01:00
Kay Sievers
081be002ea udevd: create /dev/.udev/rules.d/ before watching it wit inotify
This should also address:

On Tue, Nov 3, 2009 at 16:21, Marco d'Itri <md@linux.it> wrote:
> udev_rules_new() in udev/udev-rules.c unconditionally creates the
> directory.
> This is a problem because the function is called also by e.g. udevadm
> test, and creating /dev/.udev/ when it does not exist is an unacceptable
> side effect which will break everything else that checks for its
> existence to know if udev is running.
2009-11-04 17:06:52 +01:00
Martin Pitt
495d408b36 fix major fd leak in link handling
link_find_prioritized(): Properly close directory handles to fix a major fd
leak which caused hotplugging to fail entirely in many cases due to having too
many open files.

https://launchpad.net/bugs/463347
2009-11-03 00:03:43 +01:00
Kay Sievers
bc3ec7bd45 unblock signals we might want to handle
On Thu, Oct 29, 2009 at 19:15, Christian P. Schmidt <schmidt@digadd.de> wrote:
> After the getty replaces itself with login the pam module pam_mount
> calls mount. This in turn determines that the partition to be mounted is
> LUKS encrypted, and calls cryptsetup. Cryptsetup receives the password,
> unlocks the partition, and calls udevadm settle in order to avoid some
> problems in interaction with LVM.
>
> udevadm settle never returns.
>
> The problem here is that SIGUSR1 and SIGALRM are both blocked in oldmask
> already, and never reach udevadm. No care is ever taken to ensure those
> signals are not blocked.
2009-10-31 11:53:41 +01:00
Kay Sievers
26347a4c55 use CLOEXEC flags instead of fcntl() 2009-10-30 12:39:04 +01:00
Kay Sievers
bfbf65aad0 remove "last_rule" option
Its use breaks too many things which expect to be run from independent
later rules, and is an idication that something needs to be fixed
properly instead.
2009-10-28 11:45:32 +01:00
Kay Sievers
6834a44299 break loops if util_create_path() returns error
Dangling symlinks in path components return -ENOENT. Do not retry
to create the file in a loop in such case.
2009-10-28 11:37:20 +01:00
Kay Sievers
19711e1933 udevd: serialize events for with the same major/minor
On Wed, Oct 7, 2009 at 21:46, Alan Jenkins <sourcejedi.lkml@googlemail.com> wrote:
> Udev would have avoided the race prior to
>
> 82c785e "udevd: remove check for dev_t, DEVPATH_OLD takes care of that"
>
> (the "check" removed here used to serialize events based on the device
> major:minor number).

On Wed, Oct 7, 2009 at 22:31, Michael Guntsche <mike@it-loops.com> wrote:
> add      /module/8250_pnp (module)
> remove /devices/platform/serial8250/tty/ttyS0 (tty)
> add      /devices/pnp0/00:05/tty/ttyS0 (tty)
2009-10-08 00:06:23 +02:00
Andrew Church
4daa146bf7 fix wrong parameter size on ioctl FIONREAD
On Wed, Sep 23, 2009 at 23:11, Matthias Schwarzott <zzam@gentoo.org> wrote:
> It is about ioctl failures on amd64:
>   http://bugs.gentoo.org/show_bug.cgi?id=286041
>
> A bad parameter type to an ioctl() call causes udev-146 to generate "error
> getting buffer for inotify" messages in syslog.  The offending code is
> roughly:
>
>    ssize_t nbytes, pos;
>    // ...
>    ioctl(fd, FIONREAD, &nbytes);
>
> where ssize_t is 64 bits on amd64, but the kernel code for FIONREAD (at least
> through gentoo-sources-2.6.31) uses type int:
>
>    p = (void __user *) arg;
>    switch (cmd) {
>    case FIONREAD:
>        // ...
>        ret = put_user(send_len, (int __user *) p);
>
> so the upper 32 bits of "nbytes" are left uninitialized, and the subsequent
> malloc(nbytes) fails unless those 32 bits happen to be zero (or the system has
> a LOT of memory).
2009-09-24 10:53:10 -07:00
Harald Hoyer
6068553195 rename interfaces to <iface>_rename if rename fails 2009-09-18 13:14:30 +02:00
Kay Sievers
bcb8b2315b fix SYMLINK{} option parsing 2009-09-16 18:14:03 +02:00