core/manager: correct and simplify errno handling
open_parent() is our own function that returns negative errno.
This commit is contained in:
+8
-8
@@ -1032,23 +1032,23 @@ int manager_new(RuntimeScope runtime_scope, ManagerTestRunFlags test_run_flags,
|
||||
|
||||
self_dir_fd = open_parent(self_exe, O_CLOEXEC|O_DIRECTORY, 0);
|
||||
if (self_dir_fd < 0)
|
||||
return -errno;
|
||||
return self_dir_fd;
|
||||
|
||||
m->executor_fd = openat(self_dir_fd, "systemd-executor", O_CLOEXEC|O_PATH);
|
||||
if (m->executor_fd < 0 && errno == ENOENT)
|
||||
m->executor_fd = openat(AT_FDCWD, "systemd-executor", O_CLOEXEC|O_PATH);
|
||||
if (m->executor_fd < 0 && errno == ENOENT) {
|
||||
m->executor_fd = open(SYSTEMD_EXECUTOR_BINARY_PATH, O_CLOEXEC|O_PATH);
|
||||
m->executor_fd = RET_NERRNO(openat(self_dir_fd, "systemd-executor", O_CLOEXEC|O_PATH));
|
||||
if (m->executor_fd == -ENOENT)
|
||||
m->executor_fd = RET_NERRNO(openat(AT_FDCWD, "systemd-executor", O_CLOEXEC|O_PATH));
|
||||
if (m->executor_fd == -ENOENT) {
|
||||
m->executor_fd = RET_NERRNO(open(SYSTEMD_EXECUTOR_BINARY_PATH, O_CLOEXEC|O_PATH));
|
||||
level = LOG_WARNING; /* Tests should normally use local builds */
|
||||
}
|
||||
if (m->executor_fd < 0)
|
||||
return -errno;
|
||||
return m->executor_fd;
|
||||
|
||||
r = fd_get_path(m->executor_fd, &executor_path);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
log_full(level, "Using systemd-executor binary from '%s'", executor_path);
|
||||
log_full(level, "Using systemd-executor binary from '%s'.", executor_path);
|
||||
}
|
||||
|
||||
/* Note that we do not set up the notify fd here. We do that after deserialization,
|
||||
|
||||
Reference in New Issue
Block a user