chiark / gitweb /
rules: switch to built-in blkid
[elogind.git] / udev / udevd.c
index fdb3e420024f60fbba39fda60dd5179cbdc55414..d1f7cd8909f26b782f52e7529dbce4a90b72feff 100644 (file)
@@ -1420,7 +1420,7 @@ int main(int argc, char *argv[])
                        goto exit;
                default:
                        rc = EXIT_SUCCESS;
-                       goto exit_keep_queue;
+                       goto exit_daemonize;
                }
 
                setsid();
@@ -1513,6 +1513,8 @@ int main(int argc, char *argv[])
        }
        fd_worker = worker_watch[READ_END];
 
+       udev_builtin_load(udev);
+
        rules = udev_rules_new(udev, resolve_names);
        if (rules == NULL) {
                err(udev, "error reading rules\n");
@@ -1648,10 +1650,11 @@ int main(int argc, char *argv[])
                        struct udev_device *dev;
 
                        dev = udev_monitor_receive_device(monitor);
-                       if (dev != NULL)
+                       if (dev != NULL) {
                                udev_device_set_usec_initialized(dev, now_usec());
                                if (event_queue_insert(dev) < 0)
                                        udev_device_unref(dev);
+                       }
                }
 
                /* start new events */
@@ -1704,12 +1707,14 @@ int main(int argc, char *argv[])
        rc = EXIT_SUCCESS;
 exit:
        udev_queue_export_cleanup(udev_queue_export);
-exit_keep_queue:
+       udev_ctrl_cleanup(udev_ctrl);
+exit_daemonize:
        if (fd_ep >= 0)
                close(fd_ep);
        worker_list_cleanup(udev);
        event_queue_cleanup(udev, EVENT_UNDEF);
        udev_rules_unref(rules);
+       udev_builtin_unload(udev);
        if (fd_signal >= 0)
                close(fd_signal);
        if (worker_watch[READ_END] >= 0)