aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorKay Sievers <kay.sievers@suse.de>2006-02-23 20:10:49 +0100
committerKay Sievers <kay.sievers@suse.de>2006-02-23 20:10:49 +0100
commit1a4e5303e0309fc629880a5abaf690b571ae6f2f (patch)
treea0fbcb3486f552e6cd176b469567dd087c1aeae6
parentdd8140ae79de87f72a956c0806e303984e827c6b (diff)
downloadudev-1a4e5303e0309fc629880a5abaf690b571ae6f2f.tar.gz
udevd: fix queue export for multiple events for the same device
Identified by Joachim Plack <jplack@suse.de> while working around the problem that the device nodes appear and disappear while the partitiontable is re-read and the application need to waait for an empty udevd queue.
-rw-r--r--udevd.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/udevd.c b/udevd.c
index 3f4605ed..98e3d54b 100644
--- a/udevd.c
+++ b/udevd.c
@@ -200,6 +200,10 @@ static void export_event_state(struct uevent_msg *msg, enum event_state state)
if (loop_msg->devpath && strcmp(loop_msg->devpath, msg->devpath) == 0)
return;
+ list_for_each_entry(loop_msg, &exec_list, node)
+ if (loop_msg->devpath && strcmp(loop_msg->devpath, msg->devpath) == 0)
+ return;
+
/* move failed events to the failed directory */
if (state == EVENT_FAILED) {
create_path(filename_failed);