execute: Rename ExecRuntime to ExecSharedRuntime
Preparation for next commit
This commit is contained in:
+51
-51
@@ -2178,7 +2178,7 @@ static bool exec_needs_ipc_namespace(const ExecContext *context) {
|
||||
bool exec_needs_mount_namespace(
|
||||
const ExecContext *context,
|
||||
const ExecParameters *params,
|
||||
const ExecRuntime *runtime) {
|
||||
const ExecSharedRuntime *runtime) {
|
||||
|
||||
assert(context);
|
||||
|
||||
@@ -3683,7 +3683,7 @@ static int apply_mount_namespace(
|
||||
ExecCommandFlags command_flags,
|
||||
const ExecContext *context,
|
||||
const ExecParameters *params,
|
||||
const ExecRuntime *runtime,
|
||||
const ExecSharedRuntime *runtime,
|
||||
const char *memory_pressure_path,
|
||||
char **error_path) {
|
||||
|
||||
@@ -4056,7 +4056,7 @@ static void append_socket_pair(int *array, size_t *n, const int pair[static 2])
|
||||
|
||||
static int close_remaining_fds(
|
||||
const ExecParameters *params,
|
||||
const ExecRuntime *runtime,
|
||||
const ExecSharedRuntime *runtime,
|
||||
const DynamicCreds *dcreds,
|
||||
int user_lookup_fd,
|
||||
int socket_fd,
|
||||
@@ -4403,7 +4403,7 @@ static int exec_child(
|
||||
const ExecCommand *command,
|
||||
const ExecContext *context,
|
||||
const ExecParameters *params,
|
||||
ExecRuntime *runtime,
|
||||
ExecSharedRuntime *runtime,
|
||||
DynamicCreds *dcreds,
|
||||
const CGroupContext *cgroup_context,
|
||||
int socket_fd,
|
||||
@@ -5549,7 +5549,7 @@ int exec_spawn(Unit *unit,
|
||||
ExecCommand *command,
|
||||
const ExecContext *context,
|
||||
const ExecParameters *params,
|
||||
ExecRuntime *runtime,
|
||||
ExecSharedRuntime *runtime,
|
||||
DynamicCreds *dcreds,
|
||||
const CGroupContext *cgroup_context,
|
||||
pid_t *ret) {
|
||||
@@ -6956,14 +6956,14 @@ static void *remove_tmpdir_thread(void *p) {
|
||||
return NULL;
|
||||
}
|
||||
|
||||
static ExecRuntime* exec_runtime_free(ExecRuntime *rt, bool destroy) {
|
||||
static ExecSharedRuntime* exec_shared_runtime_free(ExecSharedRuntime *rt, bool destroy) {
|
||||
int r;
|
||||
|
||||
if (!rt)
|
||||
return NULL;
|
||||
|
||||
if (rt->manager)
|
||||
(void) hashmap_remove(rt->manager->exec_runtime_by_id, rt->id);
|
||||
(void) hashmap_remove(rt->manager->exec_shared_runtime_by_id, rt->id);
|
||||
|
||||
/* When destroy is true, then rm_rf tmp_dir and var_tmp_dir. */
|
||||
|
||||
@@ -6995,13 +6995,13 @@ static ExecRuntime* exec_runtime_free(ExecRuntime *rt, bool destroy) {
|
||||
return mfree(rt);
|
||||
}
|
||||
|
||||
static void exec_runtime_freep(ExecRuntime **rt) {
|
||||
(void) exec_runtime_free(*rt, false);
|
||||
static void exec_shared_runtime_freep(ExecSharedRuntime **rt) {
|
||||
(void) exec_shared_runtime_free(*rt, false);
|
||||
}
|
||||
|
||||
static int exec_runtime_allocate(ExecRuntime **ret, const char *id) {
|
||||
static int exec_shared_runtime_allocate(ExecSharedRuntime **ret, const char *id) {
|
||||
_cleanup_free_ char *id_copy = NULL;
|
||||
ExecRuntime *n;
|
||||
ExecSharedRuntime *n;
|
||||
|
||||
assert(ret);
|
||||
|
||||
@@ -7009,11 +7009,11 @@ static int exec_runtime_allocate(ExecRuntime **ret, const char *id) {
|
||||
if (!id_copy)
|
||||
return -ENOMEM;
|
||||
|
||||
n = new(ExecRuntime, 1);
|
||||
n = new(ExecSharedRuntime, 1);
|
||||
if (!n)
|
||||
return -ENOMEM;
|
||||
|
||||
*n = (ExecRuntime) {
|
||||
*n = (ExecSharedRuntime) {
|
||||
.id = TAKE_PTR(id_copy),
|
||||
.netns_storage_socket = PIPE_EBADF,
|
||||
.ipcns_storage_socket = PIPE_EBADF,
|
||||
@@ -7023,16 +7023,16 @@ static int exec_runtime_allocate(ExecRuntime **ret, const char *id) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int exec_runtime_add(
|
||||
static int exec_shared_runtime_add(
|
||||
Manager *m,
|
||||
const char *id,
|
||||
char **tmp_dir,
|
||||
char **var_tmp_dir,
|
||||
int netns_storage_socket[2],
|
||||
int ipcns_storage_socket[2],
|
||||
ExecRuntime **ret) {
|
||||
ExecSharedRuntime **ret) {
|
||||
|
||||
_cleanup_(exec_runtime_freep) ExecRuntime *rt = NULL;
|
||||
_cleanup_(exec_shared_runtime_freep) ExecSharedRuntime *rt = NULL;
|
||||
int r;
|
||||
|
||||
assert(m);
|
||||
@@ -7040,11 +7040,11 @@ static int exec_runtime_add(
|
||||
|
||||
/* tmp_dir, var_tmp_dir, {net,ipc}ns_storage_socket fds are donated on success */
|
||||
|
||||
r = exec_runtime_allocate(&rt, id);
|
||||
r = exec_shared_runtime_allocate(&rt, id);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
r = hashmap_ensure_put(&m->exec_runtime_by_id, &string_hash_ops, rt->id, rt);
|
||||
r = hashmap_ensure_put(&m->exec_shared_runtime_by_id, &string_hash_ops, rt->id, rt);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
@@ -7066,16 +7066,16 @@ static int exec_runtime_add(
|
||||
|
||||
if (ret)
|
||||
*ret = rt;
|
||||
/* do not remove created ExecRuntime object when the operation succeeds. */
|
||||
/* do not remove created ExecSharedRuntime object when the operation succeeds. */
|
||||
TAKE_PTR(rt);
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int exec_runtime_make(
|
||||
static int exec_shared_runtime_make(
|
||||
Manager *m,
|
||||
const ExecContext *c,
|
||||
const char *id,
|
||||
ExecRuntime **ret) {
|
||||
ExecSharedRuntime **ret) {
|
||||
|
||||
_cleanup_(namespace_cleanup_tmpdirp) char *tmp_dir = NULL, *var_tmp_dir = NULL;
|
||||
_cleanup_close_pair_ int netns_storage_socket[2] = PIPE_EBADF, ipcns_storage_socket[2] = PIPE_EBADF;
|
||||
@@ -7085,7 +7085,7 @@ static int exec_runtime_make(
|
||||
assert(c);
|
||||
assert(id);
|
||||
|
||||
/* It is not necessary to create ExecRuntime object. */
|
||||
/* It is not necessary to create ExecSharedRuntime object. */
|
||||
if (!exec_needs_network_namespace(c) && !exec_needs_ipc_namespace(c) && !c->private_tmp) {
|
||||
*ret = NULL;
|
||||
return 0;
|
||||
@@ -7110,24 +7110,24 @@ static int exec_runtime_make(
|
||||
return -errno;
|
||||
}
|
||||
|
||||
r = exec_runtime_add(m, id, &tmp_dir, &var_tmp_dir, netns_storage_socket, ipcns_storage_socket, ret);
|
||||
r = exec_shared_runtime_add(m, id, &tmp_dir, &var_tmp_dir, netns_storage_socket, ipcns_storage_socket, ret);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
int exec_runtime_acquire(Manager *m, const ExecContext *c, const char *id, bool create, ExecRuntime **ret) {
|
||||
ExecRuntime *rt;
|
||||
int exec_shared_runtime_acquire(Manager *m, const ExecContext *c, const char *id, bool create, ExecSharedRuntime **ret) {
|
||||
ExecSharedRuntime *rt;
|
||||
int r;
|
||||
|
||||
assert(m);
|
||||
assert(id);
|
||||
assert(ret);
|
||||
|
||||
rt = hashmap_get(m->exec_runtime_by_id, id);
|
||||
rt = hashmap_get(m->exec_shared_runtime_by_id, id);
|
||||
if (rt)
|
||||
/* We already have an ExecRuntime object, let's increase the ref count and reuse it */
|
||||
/* We already have an ExecSharedRuntime object, let's increase the ref count and reuse it */
|
||||
goto ref;
|
||||
|
||||
if (!create) {
|
||||
@@ -7136,11 +7136,11 @@ int exec_runtime_acquire(Manager *m, const ExecContext *c, const char *id, bool
|
||||
}
|
||||
|
||||
/* If not found, then create a new object. */
|
||||
r = exec_runtime_make(m, c, id, &rt);
|
||||
r = exec_shared_runtime_make(m, c, id, &rt);
|
||||
if (r < 0)
|
||||
return r;
|
||||
if (r == 0) {
|
||||
/* When r == 0, it is not necessary to create ExecRuntime object. */
|
||||
/* When r == 0, it is not necessary to create ExecSharedRuntime object. */
|
||||
*ret = NULL;
|
||||
return 0;
|
||||
}
|
||||
@@ -7152,7 +7152,7 @@ ref:
|
||||
return 1;
|
||||
}
|
||||
|
||||
ExecRuntime *exec_runtime_unref(ExecRuntime *rt, bool destroy) {
|
||||
ExecSharedRuntime *exec_shared_runtime_unref(ExecSharedRuntime *rt, bool destroy) {
|
||||
if (!rt)
|
||||
return NULL;
|
||||
|
||||
@@ -7162,17 +7162,17 @@ ExecRuntime *exec_runtime_unref(ExecRuntime *rt, bool destroy) {
|
||||
if (rt->n_ref > 0)
|
||||
return NULL;
|
||||
|
||||
return exec_runtime_free(rt, destroy);
|
||||
return exec_shared_runtime_free(rt, destroy);
|
||||
}
|
||||
|
||||
int exec_runtime_serialize(const Manager *m, FILE *f, FDSet *fds) {
|
||||
ExecRuntime *rt;
|
||||
int exec_shared_runtime_serialize(const Manager *m, FILE *f, FDSet *fds) {
|
||||
ExecSharedRuntime *rt;
|
||||
|
||||
assert(m);
|
||||
assert(f);
|
||||
assert(fds);
|
||||
|
||||
HASHMAP_FOREACH(rt, m->exec_runtime_by_id) {
|
||||
HASHMAP_FOREACH(rt, m->exec_shared_runtime_by_id) {
|
||||
fprintf(f, "exec-runtime=%s", rt->id);
|
||||
|
||||
if (rt->tmp_dir)
|
||||
@@ -7227,33 +7227,33 @@ int exec_runtime_serialize(const Manager *m, FILE *f, FDSet *fds) {
|
||||
return 0;
|
||||
}
|
||||
|
||||
int exec_runtime_deserialize_compat(Unit *u, const char *key, const char *value, FDSet *fds) {
|
||||
_cleanup_(exec_runtime_freep) ExecRuntime *rt_create = NULL;
|
||||
ExecRuntime *rt;
|
||||
int exec_shared_runtime_deserialize_compat(Unit *u, const char *key, const char *value, FDSet *fds) {
|
||||
_cleanup_(exec_shared_runtime_freep) ExecSharedRuntime *rt_create = NULL;
|
||||
ExecSharedRuntime *rt;
|
||||
int r;
|
||||
|
||||
/* This is for the migration from old (v237 or earlier) deserialization text.
|
||||
* Due to the bug #7790, this may not work with the units that use JoinsNamespaceOf=.
|
||||
* Even if the ExecRuntime object originally created by the other unit, we cannot judge
|
||||
* Even if the ExecSharedRuntime object originally created by the other unit, we cannot judge
|
||||
* so or not from the serialized text, then we always creates a new object owned by this. */
|
||||
|
||||
assert(u);
|
||||
assert(key);
|
||||
assert(value);
|
||||
|
||||
/* Manager manages ExecRuntime objects by the unit id.
|
||||
/* Manager manages ExecSharedRuntime objects by the unit id.
|
||||
* So, we omit the serialized text when the unit does not have id (yet?)... */
|
||||
if (isempty(u->id)) {
|
||||
log_unit_debug(u, "Invocation ID not found. Dropping runtime parameter.");
|
||||
return 0;
|
||||
}
|
||||
|
||||
if (hashmap_ensure_allocated(&u->manager->exec_runtime_by_id, &string_hash_ops) < 0)
|
||||
if (hashmap_ensure_allocated(&u->manager->exec_shared_runtime_by_id, &string_hash_ops) < 0)
|
||||
return log_oom();
|
||||
|
||||
rt = hashmap_get(u->manager->exec_runtime_by_id, u->id);
|
||||
rt = hashmap_get(u->manager->exec_shared_runtime_by_id, u->id);
|
||||
if (!rt) {
|
||||
if (exec_runtime_allocate(&rt_create, u->id) < 0)
|
||||
if (exec_shared_runtime_allocate(&rt_create, u->id) < 0)
|
||||
return log_oom();
|
||||
|
||||
rt = rt_create;
|
||||
@@ -7292,9 +7292,9 @@ int exec_runtime_deserialize_compat(Unit *u, const char *key, const char *value,
|
||||
} else
|
||||
return 0;
|
||||
|
||||
/* If the object is newly created, then put it to the hashmap which manages ExecRuntime objects. */
|
||||
/* If the object is newly created, then put it to the hashmap which manages ExecSharedRuntime objects. */
|
||||
if (rt_create) {
|
||||
r = hashmap_put(u->manager->exec_runtime_by_id, rt_create->id, rt_create);
|
||||
r = hashmap_put(u->manager->exec_shared_runtime_by_id, rt_create->id, rt_create);
|
||||
if (r < 0) {
|
||||
log_unit_debug_errno(u, r, "Failed to put runtime parameter to manager's storage: %m");
|
||||
return 0;
|
||||
@@ -7309,7 +7309,7 @@ int exec_runtime_deserialize_compat(Unit *u, const char *key, const char *value,
|
||||
return 1;
|
||||
}
|
||||
|
||||
int exec_runtime_deserialize_one(Manager *m, const char *value, FDSet *fds) {
|
||||
int exec_shared_runtime_deserialize_one(Manager *m, const char *value, FDSet *fds) {
|
||||
_cleanup_free_ char *tmp_dir = NULL, *var_tmp_dir = NULL;
|
||||
char *id = NULL;
|
||||
int r, netns_fdpair[] = {-1, -1}, ipcns_fdpair[] = {-1, -1};
|
||||
@@ -7421,24 +7421,24 @@ int exec_runtime_deserialize_one(Manager *m, const char *value, FDSet *fds) {
|
||||
}
|
||||
|
||||
finalize:
|
||||
r = exec_runtime_add(m, id, &tmp_dir, &var_tmp_dir, netns_fdpair, ipcns_fdpair, NULL);
|
||||
r = exec_shared_runtime_add(m, id, &tmp_dir, &var_tmp_dir, netns_fdpair, ipcns_fdpair, NULL);
|
||||
if (r < 0)
|
||||
return log_debug_errno(r, "Failed to add exec-runtime: %m");
|
||||
return 0;
|
||||
}
|
||||
|
||||
void exec_runtime_vacuum(Manager *m) {
|
||||
ExecRuntime *rt;
|
||||
void exec_shared_runtime_vacuum(Manager *m) {
|
||||
ExecSharedRuntime *rt;
|
||||
|
||||
assert(m);
|
||||
|
||||
/* Free unreferenced ExecRuntime objects. This is used after manager deserialization process. */
|
||||
/* Free unreferenced ExecSharedRuntime objects. This is used after manager deserialization process. */
|
||||
|
||||
HASHMAP_FOREACH(rt, m->exec_runtime_by_id) {
|
||||
HASHMAP_FOREACH(rt, m->exec_shared_runtime_by_id) {
|
||||
if (rt->n_ref > 0)
|
||||
continue;
|
||||
|
||||
(void) exec_runtime_free(rt, false);
|
||||
(void) exec_shared_runtime_free(rt, false);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
+10
-10
@@ -4,7 +4,7 @@
|
||||
typedef struct ExecStatus ExecStatus;
|
||||
typedef struct ExecCommand ExecCommand;
|
||||
typedef struct ExecContext ExecContext;
|
||||
typedef struct ExecRuntime ExecRuntime;
|
||||
typedef struct ExecSharedRuntime ExecSharedRuntime;
|
||||
typedef struct ExecParameters ExecParameters;
|
||||
typedef struct Manager Manager;
|
||||
|
||||
@@ -106,7 +106,7 @@ struct ExecCommand {
|
||||
* invocations of commands. Specifically, this allows sharing of /tmp and /var/tmp data as well as network namespaces
|
||||
* between invocations of commands. This is a reference counted object, with one reference taken by each currently
|
||||
* active command invocation that wants to share this runtime. */
|
||||
struct ExecRuntime {
|
||||
struct ExecSharedRuntime {
|
||||
unsigned n_ref;
|
||||
|
||||
Manager *manager;
|
||||
@@ -439,7 +439,7 @@ int exec_spawn(Unit *unit,
|
||||
ExecCommand *command,
|
||||
const ExecContext *context,
|
||||
const ExecParameters *exec_params,
|
||||
ExecRuntime *runtime,
|
||||
ExecSharedRuntime *runtime,
|
||||
DynamicCreds *dynamic_creds,
|
||||
const CGroupContext *cgroup_context,
|
||||
pid_t *ret);
|
||||
@@ -483,13 +483,13 @@ void exec_status_exit(ExecStatus *s, const ExecContext *context, pid_t pid, int
|
||||
void exec_status_dump(const ExecStatus *s, FILE *f, const char *prefix);
|
||||
void exec_status_reset(ExecStatus *s);
|
||||
|
||||
int exec_runtime_acquire(Manager *m, const ExecContext *c, const char *name, bool create, ExecRuntime **ret);
|
||||
ExecRuntime *exec_runtime_unref(ExecRuntime *r, bool destroy);
|
||||
int exec_shared_runtime_acquire(Manager *m, const ExecContext *c, const char *name, bool create, ExecSharedRuntime **ret);
|
||||
ExecSharedRuntime *exec_shared_runtime_unref(ExecSharedRuntime *r, bool destroy);
|
||||
|
||||
int exec_runtime_serialize(const Manager *m, FILE *f, FDSet *fds);
|
||||
int exec_runtime_deserialize_compat(Unit *u, const char *key, const char *value, FDSet *fds);
|
||||
int exec_runtime_deserialize_one(Manager *m, const char *value, FDSet *fds);
|
||||
void exec_runtime_vacuum(Manager *m);
|
||||
int exec_shared_runtime_serialize(const Manager *m, FILE *f, FDSet *fds);
|
||||
int exec_shared_runtime_deserialize_compat(Unit *u, const char *key, const char *value, FDSet *fds);
|
||||
int exec_shared_runtime_deserialize_one(Manager *m, const char *value, FDSet *fds);
|
||||
void exec_shared_runtime_vacuum(Manager *m);
|
||||
|
||||
void exec_params_clear(ExecParameters *p);
|
||||
|
||||
@@ -532,5 +532,5 @@ ExecDirectoryType exec_directory_type_symlink_from_string(const char *s) _pure_;
|
||||
const char* exec_resource_type_to_string(ExecDirectoryType i) _const_;
|
||||
ExecDirectoryType exec_resource_type_from_string(const char *s) _pure_;
|
||||
|
||||
bool exec_needs_mount_namespace(const ExecContext *context, const ExecParameters *params, const ExecRuntime *runtime);
|
||||
bool exec_needs_mount_namespace(const ExecContext *context, const ExecParameters *params, const ExecSharedRuntime *runtime);
|
||||
bool exec_needs_network_namespace(const ExecContext *context);
|
||||
|
||||
@@ -174,7 +174,7 @@ int manager_serialize(
|
||||
manager_serialize_uid_refs(m, f);
|
||||
manager_serialize_gid_refs(m, f);
|
||||
|
||||
r = exec_runtime_serialize(m, f, fds);
|
||||
r = exec_shared_runtime_serialize(m, f, fds);
|
||||
if (r < 0)
|
||||
return r;
|
||||
|
||||
@@ -519,7 +519,7 @@ int manager_deserialize(Manager *m, FILE *f, FDSet *fds) {
|
||||
else if ((val = startswith(l, "destroy-ipc-gid=")))
|
||||
manager_deserialize_gid_refs_one(m, val);
|
||||
else if ((val = startswith(l, "exec-runtime=")))
|
||||
(void) exec_runtime_deserialize_one(m, val, fds);
|
||||
(void) exec_shared_runtime_deserialize_one(m, val, fds);
|
||||
else if ((val = startswith(l, "subscribed="))) {
|
||||
|
||||
if (strv_extend(&m->deserialized_subscribed, val) < 0)
|
||||
|
||||
+4
-4
@@ -1555,8 +1555,8 @@ Manager* manager_free(Manager *m) {
|
||||
bus_done(m);
|
||||
manager_varlink_done(m);
|
||||
|
||||
exec_runtime_vacuum(m);
|
||||
hashmap_free(m->exec_runtime_by_id);
|
||||
exec_shared_runtime_vacuum(m);
|
||||
hashmap_free(m->exec_shared_runtime_by_id);
|
||||
|
||||
dynamic_user_vacuum(m, false);
|
||||
hashmap_free(m->dynamic_users);
|
||||
@@ -3459,7 +3459,7 @@ int manager_reload(Manager *m) {
|
||||
manager_clear_jobs_and_units(m);
|
||||
lookup_paths_flush_generator(&m->lookup_paths);
|
||||
lookup_paths_free(&m->lookup_paths);
|
||||
exec_runtime_vacuum(m);
|
||||
exec_shared_runtime_vacuum(m);
|
||||
dynamic_user_vacuum(m, false);
|
||||
m->uid_refs = hashmap_free(m->uid_refs);
|
||||
m->gid_refs = hashmap_free(m->gid_refs);
|
||||
@@ -4540,7 +4540,7 @@ static void manager_vacuum(Manager *m) {
|
||||
manager_vacuum_gid_refs(m);
|
||||
|
||||
/* Release any runtimes no longer referenced */
|
||||
exec_runtime_vacuum(m);
|
||||
exec_shared_runtime_vacuum(m);
|
||||
}
|
||||
|
||||
int manager_dispatch_user_lookup_fd(sd_event_source *source, int fd, uint32_t revents, void *userdata) {
|
||||
|
||||
+2
-2
@@ -429,8 +429,8 @@ struct Manager {
|
||||
Hashmap *uid_refs;
|
||||
Hashmap *gid_refs;
|
||||
|
||||
/* ExecRuntime, indexed by their owner unit id */
|
||||
Hashmap *exec_runtime_by_id;
|
||||
/* ExecSharedRuntime, indexed by their owner unit id */
|
||||
Hashmap *exec_shared_runtime_by_id;
|
||||
|
||||
/* When the user hits C-A-D more than 7 times per 2s, do something immediately... */
|
||||
RateLimit ctrl_alt_del_ratelimit;
|
||||
|
||||
+2
-2
@@ -254,7 +254,7 @@ static void mount_done(Unit *u) {
|
||||
mount_parameters_done(&m->parameters_proc_self_mountinfo);
|
||||
mount_parameters_done(&m->parameters_fragment);
|
||||
|
||||
m->exec_runtime = exec_runtime_unref(m->exec_runtime, false);
|
||||
m->exec_runtime = exec_shared_runtime_unref(m->exec_runtime, false);
|
||||
exec_command_done_array(m->exec_command, _MOUNT_EXEC_COMMAND_MAX);
|
||||
m->control_command = NULL;
|
||||
|
||||
@@ -948,7 +948,7 @@ static void mount_enter_dead(Mount *m, MountResult f) {
|
||||
|
||||
mount_set_state(m, m->result != MOUNT_SUCCESS ? MOUNT_FAILED : MOUNT_DEAD);
|
||||
|
||||
m->exec_runtime = exec_runtime_unref(m->exec_runtime, true);
|
||||
m->exec_runtime = exec_shared_runtime_unref(m->exec_runtime, true);
|
||||
|
||||
unit_destroy_runtime_data(UNIT(m), &m->exec_context);
|
||||
|
||||
|
||||
+1
-1
@@ -75,7 +75,7 @@ struct Mount {
|
||||
KillContext kill_context;
|
||||
CGroupContext cgroup_context;
|
||||
|
||||
ExecRuntime *exec_runtime;
|
||||
ExecSharedRuntime *exec_runtime;
|
||||
DynamicCreds dynamic_creds;
|
||||
|
||||
MountState state, deserialized_state;
|
||||
|
||||
+2
-2
@@ -383,7 +383,7 @@ static void service_done(Unit *u) {
|
||||
s->pid_file = mfree(s->pid_file);
|
||||
s->status_text = mfree(s->status_text);
|
||||
|
||||
s->exec_runtime = exec_runtime_unref(s->exec_runtime, false);
|
||||
s->exec_runtime = exec_shared_runtime_unref(s->exec_runtime, false);
|
||||
exec_command_free_array(s->exec_command, _SERVICE_EXEC_COMMAND_MAX);
|
||||
s->control_command = NULL;
|
||||
s->main_command = NULL;
|
||||
@@ -1925,7 +1925,7 @@ static void service_enter_dead(Service *s, ServiceResult f, bool allow_restart)
|
||||
s->notify_access_override = _NOTIFY_ACCESS_INVALID;
|
||||
|
||||
/* We want fresh tmpdirs in case service is started again immediately */
|
||||
s->exec_runtime = exec_runtime_unref(s->exec_runtime, true);
|
||||
s->exec_runtime = exec_shared_runtime_unref(s->exec_runtime, true);
|
||||
|
||||
/* Also, remove the runtime directory */
|
||||
unit_destroy_runtime_data(UNIT(s), &s->exec_context);
|
||||
|
||||
+1
-1
@@ -155,7 +155,7 @@ struct Service {
|
||||
ServiceExecCommand control_command_id;
|
||||
|
||||
/* Runtime data of the execution context */
|
||||
ExecRuntime *exec_runtime;
|
||||
ExecSharedRuntime *exec_runtime;
|
||||
DynamicCreds dynamic_creds;
|
||||
|
||||
pid_t main_pid, control_pid;
|
||||
|
||||
+2
-2
@@ -150,7 +150,7 @@ static void socket_done(Unit *u) {
|
||||
|
||||
s->peers_by_address = set_free(s->peers_by_address);
|
||||
|
||||
s->exec_runtime = exec_runtime_unref(s->exec_runtime, false);
|
||||
s->exec_runtime = exec_shared_runtime_unref(s->exec_runtime, false);
|
||||
exec_command_free_array(s->exec_command, _SOCKET_EXEC_COMMAND_MAX);
|
||||
s->control_command = NULL;
|
||||
|
||||
@@ -2049,7 +2049,7 @@ static void socket_enter_dead(Socket *s, SocketResult f) {
|
||||
|
||||
socket_set_state(s, s->result != SOCKET_SUCCESS ? SOCKET_FAILED : SOCKET_DEAD);
|
||||
|
||||
s->exec_runtime = exec_runtime_unref(s->exec_runtime, true);
|
||||
s->exec_runtime = exec_shared_runtime_unref(s->exec_runtime, true);
|
||||
|
||||
unit_destroy_runtime_data(UNIT(s), &s->exec_context);
|
||||
|
||||
|
||||
+1
-1
@@ -90,7 +90,7 @@ struct Socket {
|
||||
KillContext kill_context;
|
||||
CGroupContext cgroup_context;
|
||||
|
||||
ExecRuntime *exec_runtime;
|
||||
ExecSharedRuntime *exec_runtime;
|
||||
DynamicCreds dynamic_creds;
|
||||
|
||||
/* For Accept=no sockets refers to the one service we'll
|
||||
|
||||
+2
-2
@@ -170,7 +170,7 @@ static void swap_done(Unit *u) {
|
||||
s->parameters_fragment.what = mfree(s->parameters_fragment.what);
|
||||
s->parameters_fragment.options = mfree(s->parameters_fragment.options);
|
||||
|
||||
s->exec_runtime = exec_runtime_unref(s->exec_runtime, false);
|
||||
s->exec_runtime = exec_shared_runtime_unref(s->exec_runtime, false);
|
||||
exec_command_done_array(s->exec_command, _SWAP_EXEC_COMMAND_MAX);
|
||||
s->control_command = NULL;
|
||||
|
||||
@@ -719,7 +719,7 @@ static void swap_enter_dead(Swap *s, SwapResult f) {
|
||||
unit_warn_leftover_processes(UNIT(s), unit_log_leftover_process_stop);
|
||||
swap_set_state(s, s->result != SWAP_SUCCESS ? SWAP_FAILED : SWAP_DEAD);
|
||||
|
||||
s->exec_runtime = exec_runtime_unref(s->exec_runtime, true);
|
||||
s->exec_runtime = exec_shared_runtime_unref(s->exec_runtime, true);
|
||||
|
||||
unit_destroy_runtime_data(UNIT(s), &s->exec_context);
|
||||
|
||||
|
||||
+1
-1
@@ -67,7 +67,7 @@ struct Swap {
|
||||
KillContext kill_context;
|
||||
CGroupContext cgroup_context;
|
||||
|
||||
ExecRuntime *exec_runtime;
|
||||
ExecSharedRuntime *exec_runtime;
|
||||
DynamicCreds dynamic_creds;
|
||||
|
||||
SwapState state, deserialized_state;
|
||||
|
||||
@@ -522,7 +522,7 @@ int unit_deserialize(Unit *u, FILE *f, FDSet *fds) {
|
||||
continue;
|
||||
}
|
||||
|
||||
r = exec_runtime_deserialize_compat(u, l, v, fds);
|
||||
r = exec_shared_runtime_deserialize_compat(u, l, v, fds);
|
||||
if (r < 0) {
|
||||
log_unit_warning(u, "Failed to deserialize runtime parameter '%s', ignoring.", l);
|
||||
continue;
|
||||
|
||||
+7
-7
@@ -4268,7 +4268,7 @@ CGroupContext *unit_get_cgroup_context(Unit *u) {
|
||||
return (CGroupContext*) ((uint8_t*) u + offset);
|
||||
}
|
||||
|
||||
ExecRuntime *unit_get_exec_runtime(Unit *u) {
|
||||
ExecSharedRuntime *unit_get_exec_runtime(Unit *u) {
|
||||
size_t offset;
|
||||
|
||||
if (u->type < 0)
|
||||
@@ -4278,7 +4278,7 @@ ExecRuntime *unit_get_exec_runtime(Unit *u) {
|
||||
if (offset <= 0)
|
||||
return NULL;
|
||||
|
||||
return *(ExecRuntime**) ((uint8_t*) u + offset);
|
||||
return *(ExecSharedRuntime**) ((uint8_t*) u + offset);
|
||||
}
|
||||
|
||||
static const char* unit_drop_in_dir(Unit *u, UnitWriteFlags flags) {
|
||||
@@ -4791,7 +4791,7 @@ int unit_require_mounts_for(Unit *u, const char *path, UnitDependencyMask mask)
|
||||
}
|
||||
|
||||
int unit_setup_exec_runtime(Unit *u) {
|
||||
ExecRuntime **rt;
|
||||
ExecSharedRuntime **rt;
|
||||
size_t offset;
|
||||
Unit *other;
|
||||
int r;
|
||||
@@ -4799,19 +4799,19 @@ int unit_setup_exec_runtime(Unit *u) {
|
||||
offset = UNIT_VTABLE(u)->exec_runtime_offset;
|
||||
assert(offset > 0);
|
||||
|
||||
/* Check if there already is an ExecRuntime for this unit? */
|
||||
rt = (ExecRuntime**) ((uint8_t*) u + offset);
|
||||
/* Check if there already is an ExecSharedRuntime for this unit? */
|
||||
rt = (ExecSharedRuntime**) ((uint8_t*) u + offset);
|
||||
if (*rt)
|
||||
return 0;
|
||||
|
||||
/* Try to get it from somebody else */
|
||||
UNIT_FOREACH_DEPENDENCY(other, u, UNIT_ATOM_JOINS_NAMESPACE_OF) {
|
||||
r = exec_runtime_acquire(u->manager, NULL, other->id, false, rt);
|
||||
r = exec_shared_runtime_acquire(u->manager, NULL, other->id, false, rt);
|
||||
if (r == 1)
|
||||
return 1;
|
||||
}
|
||||
|
||||
return exec_runtime_acquire(u->manager, unit_get_exec_context(u), u->id, true, rt);
|
||||
return exec_shared_runtime_acquire(u->manager, unit_get_exec_context(u), u->id, true, rt);
|
||||
}
|
||||
|
||||
int unit_setup_dynamic_creds(Unit *u) {
|
||||
|
||||
+2
-2
@@ -570,7 +570,7 @@ typedef struct UnitVTable {
|
||||
size_t kill_context_offset;
|
||||
|
||||
/* If greater than 0, the offset into the object where the
|
||||
* pointer to ExecRuntime is found, if the unit type has
|
||||
* pointer to ExecSharedRuntime is found, if the unit type has
|
||||
* that */
|
||||
size_t exec_runtime_offset;
|
||||
|
||||
@@ -964,7 +964,7 @@ ExecContext *unit_get_exec_context(const Unit *u) _pure_;
|
||||
KillContext *unit_get_kill_context(Unit *u) _pure_;
|
||||
CGroupContext *unit_get_cgroup_context(Unit *u) _pure_;
|
||||
|
||||
ExecRuntime *unit_get_exec_runtime(Unit *u) _pure_;
|
||||
ExecSharedRuntime *unit_get_exec_runtime(Unit *u) _pure_;
|
||||
|
||||
int unit_setup_exec_runtime(Unit *u);
|
||||
int unit_setup_dynamic_creds(Unit *u);
|
||||
|
||||
Reference in New Issue
Block a user