Annotation of /trunk/systemd/patches/systemd-220-udevd-event-fix-event-queue-in-daemenozied-mode.patch
Parent Directory | Revision Log
Revision 2587 -
(hide annotations)
(download)
Thu Jun 18 13:12:27 2015 UTC (9 years, 3 months ago) by niro
File size: 1352 byte(s)
Thu Jun 18 13:12:27 2015 UTC (9 years, 3 months ago) by niro
File size: 1352 byte(s)
upstream fixes
1 | niro | 2587 | From 040e689654ef08c63ab93bf0875865398e8d9c91 Mon Sep 17 00:00:00 2001 |
2 | From: Tom Gundersen <teg@jklm.no> | ||
3 | Date: Sun, 24 May 2015 15:20:36 +0200 | ||
4 | Subject: udevd: event - fix event queue in daemenozied mode | ||
5 | MIME-Version: 1.0 | ||
6 | Content-Type: text/plain; charset=UTF-8 | ||
7 | Content-Transfer-Encoding: 8bit | ||
8 | |||
9 | We would enforce that events could only be added to the queue from the | ||
10 | main process, but that brake in daemonized mode. Relax the restriction | ||
11 | to only allow one process to add events to the queue. | ||
12 | |||
13 | Reported by Mantas Mikulėnas. | ||
14 | |||
15 | diff --git a/src/udev/udevd.c b/src/udev/udevd.c | ||
16 | index 4a44b03..b33a262 100644 | ||
17 | --- a/src/udev/udevd.c | ||
18 | +++ b/src/udev/udevd.c | ||
19 | @@ -564,7 +564,10 @@ static int event_queue_insert(Manager *manager, struct udev_device *dev) { | ||
20 | assert(manager); | ||
21 | assert(dev); | ||
22 | |||
23 | - /* only the main process can add events to the queue */ | ||
24 | + /* only one process can add events to the queue */ | ||
25 | + if (manager->pid == 0) | ||
26 | + manager->pid = getpid(); | ||
27 | + | ||
28 | assert(manager->pid == getpid()); | ||
29 | |||
30 | event = new0(struct event, 1); | ||
31 | @@ -1300,8 +1303,6 @@ static int manager_new(Manager **ret) { | ||
32 | if (!manager) | ||
33 | return log_oom(); | ||
34 | |||
35 | - manager->pid = getpid(); | ||
36 | - | ||
37 | manager->fd_ep = -1; | ||
38 | manager->fd_ctrl = -1; | ||
39 | manager->fd_uevent = -1; | ||
40 | -- | ||
41 | cgit v0.10.2 | ||
42 |