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:
+13
-21
@@ -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;
|
||||
|
||||
@@ -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);
|
||||
|
||||
@@ -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;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user