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.
This commit is contained in:
Tom Gundersen 2015-03-09 22:19:52 +01:00
parent 7432b24b83
commit dfc4b6acf0
1 changed files with 10 additions and 7 deletions

View File

@ -904,14 +904,17 @@ static void handle_signal(struct udev *udev, int signo) {
}
static void event_queue_update(void) {
if (!udev_list_node_is_empty(&event_list)) {
int fd;
int r;
fd = open("/run/udev/queue", O_WRONLY|O_CREAT|O_CLOEXEC|O_TRUNC|O_NOFOLLOW, 0444);
if (fd >= 0)
close(fd);
} else
unlink("/run/udev/queue");
if (!udev_list_node_is_empty(&event_list)) {
r = touch("/run/udev/queue");
if (r < 0)
log_warning_errno(r, "could not touch /run/udev/queue: %m");
} else {
r = unlink("/run/udev/queue");
if (r < 0 && errno != ENOENT)
log_warning("could not unlink /run/udev/queue: %m");
}
}
static int systemd_fds(struct udev *udev, int *rctrl, int *rnetlink) {