udev: merge manager_init() into manager_main()

It is not necessary to read cgroup path and passed fds earlier,
especially when legacy --daemon option is specified.
This commit is contained in:
Yu Watanabe
2025-04-09 08:57:21 +09:00
parent 4cd9f59b86
commit 9b6bf4e10e
3 changed files with 13 additions and 26 deletions
+13 -21
View File
@@ -1087,27 +1087,6 @@ static int manager_listen_fds(Manager *manager) {
return 0;
}
int manager_init(Manager *manager) {
int r;
assert(manager);
r = manager_listen_fds(manager);
if (r < 0)
return log_error_errno(r, "Failed to listen on fds: %m");
_cleanup_free_ char *cgroup = NULL;
r = cg_pid_get_path(SYSTEMD_CGROUP_CONTROLLER, 0, &cgroup);
if (r < 0)
log_debug_errno(r, "Failed to get cgroup, ignoring: %m");
else if (endswith(cgroup, "/udev")) { /* If we are in a subcgroup /udev/ we assume it was delegated to us */
log_debug("Running in delegated subcgroup '%s'.", cgroup);
manager->cgroup = TAKE_PTR(cgroup);
}
return 0;
}
static int manager_start_device_monitor(Manager *manager) {
int r;
@@ -1205,10 +1184,23 @@ int manager_main(Manager *manager) {
assert(manager);
_cleanup_free_ char *cgroup = NULL;
r = cg_pid_get_path(SYSTEMD_CGROUP_CONTROLLER, 0, &cgroup);
if (r < 0)
log_debug_errno(r, "Failed to get cgroup, ignoring: %m");
else if (endswith(cgroup, "/udev")) { /* If we are in a subcgroup /udev/ we assume it was delegated to us */
log_debug("Running in delegated subcgroup '%s'.", cgroup);
manager->cgroup = TAKE_PTR(cgroup);
}
r = manager_setup_event(manager);
if (r < 0)
return r;
r = manager_listen_fds(manager);
if (r < 0)
return r;
r = manager_start_ctrl(manager);
if (r < 0)
return r;
-1
View File
@@ -68,7 +68,6 @@ Manager* manager_new(void);
Manager* manager_free(Manager *manager);
DEFINE_TRIVIAL_CLEANUP_FUNC(Manager*, manager_free);
int manager_init(Manager *manager);
int manager_main(Manager *manager);
void manager_reload(Manager *manager, bool force);
void manager_exit(Manager *manager);
-4
View File
@@ -51,10 +51,6 @@ int run_udevd(int argc, char *argv[]) {
if (r < 0 && r != -EEXIST)
return log_error_errno(r, "Failed to create /run/udev: %m");
r = manager_init(manager);
if (r < 0)
return r;
if (arg_daemonize) {
pid_t pid;