From: Yu Watanabe Date: Tue, 8 Apr 2025 20:44:36 +0000 (+0900) Subject: udev: merge manager_init() into manager_main() X-Git-Tag: v258-rc1~860^2~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9b6bf4e10e7464784609989c77b6a6fb1d38066e;p=thirdparty%2Fsystemd.git 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. --- diff --git a/src/udev/udev-manager.c b/src/udev/udev-manager.c index 13ae360aa9f..1ff03bb5a37 100644 --- a/src/udev/udev-manager.c +++ b/src/udev/udev-manager.c @@ -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; diff --git a/src/udev/udev-manager.h b/src/udev/udev-manager.h index 9467508848f..fc2df313e25 100644 --- a/src/udev/udev-manager.h +++ b/src/udev/udev-manager.h @@ -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); diff --git a/src/udev/udevd.c b/src/udev/udevd.c index 1dfbc1f4781..499fb049030 100644 --- a/src/udev/udevd.c +++ b/src/udev/udevd.c @@ -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;