mirror of
https://github.com/archlinuxarm/PKGBUILDs.git
synced 2024-11-08 22:45:43 +00:00
68 lines
1.6 KiB
Diff
68 lines
1.6 KiB
Diff
From 2738ec2cf721db0c0deac2ba0abdc73cf7739e9f Mon Sep 17 00:00:00 2001
|
|
From: Kay Sievers <kay.sievers@vrfy.org>
|
|
Date: Mon, 16 May 2011 13:17:48 +0200
|
|
Subject: [PATCH 1/7] udevd: create queue file before daemonizing to reliably
|
|
block 'settle'
|
|
|
|
---
|
|
udev/udevd.c | 22 ++++++++++++----------
|
|
1 files changed, 12 insertions(+), 10 deletions(-)
|
|
|
|
diff --git a/udev/udevd.c b/udev/udevd.c
|
|
index be4b071..258d787 100644
|
|
--- a/udev/udevd.c
|
|
+++ b/udev/udevd.c
|
|
@@ -1408,6 +1408,13 @@ int main(int argc, char *argv[])
|
|
|
|
udev_monitor_set_receive_buffer_size(monitor, 128*1024*1024);
|
|
|
|
+ /* create queue file before signalling 'ready', to make sure we block 'settle' */
|
|
+ udev_queue_export = udev_queue_export_new(udev);
|
|
+ if (udev_queue_export == NULL) {
|
|
+ err(udev, "error creating queue file\n");
|
|
+ goto exit;
|
|
+ }
|
|
+
|
|
if (daemonize) {
|
|
pid_t pid;
|
|
int fd;
|
|
@@ -1421,8 +1428,8 @@ int main(int argc, char *argv[])
|
|
rc = 4;
|
|
goto exit;
|
|
default:
|
|
- rc = 0;
|
|
- goto exit;
|
|
+ rc = EXIT_SUCCESS;
|
|
+ goto exit_keep_queue;
|
|
}
|
|
|
|
setsid();
|
|
@@ -1521,12 +1528,6 @@ int main(int argc, char *argv[])
|
|
goto exit;
|
|
}
|
|
|
|
- udev_queue_export = udev_queue_export_new(udev);
|
|
- if (udev_queue_export == NULL) {
|
|
- err(udev, "error creating queue file\n");
|
|
- goto exit;
|
|
- }
|
|
-
|
|
memset(&ep_ctrl, 0, sizeof(struct epoll_event));
|
|
ep_ctrl.events = EPOLLIN;
|
|
ep_ctrl.data.fd = fd_ctrl;
|
|
@@ -1708,9 +1709,10 @@ int main(int argc, char *argv[])
|
|
}
|
|
}
|
|
|
|
- udev_queue_export_cleanup(udev_queue_export);
|
|
- rc = 0;
|
|
+ rc = EXIT_SUCCESS;
|
|
exit:
|
|
+ udev_queue_export_cleanup(udev_queue_export);
|
|
+exit_keep_queue:
|
|
if (fd_ep >= 0)
|
|
close(fd_ep);
|
|
worker_list_cleanup(udev);
|
|
--
|
|
1.7.5.1
|
|
|