diff options
author | Michal Sekletar <msekletar@users.noreply.github.com> | 2019-05-30 12:32:53 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2019-05-30 12:32:53 +0200 |
commit | 3f09629c2203e70446391e259dbc11a7ac0495d2 (patch) | |
tree | 19d7ce1b6e22ceaae339eefcb462475cf0b2fe40 /src/nspawn/nspawn-oci.c | |
parent | a0267b30f8bd6ecdaa36e4195be4e34ffbacc581 (diff) | |
parent | 1f57a176af5152d05719bf43740e87a47e37af50 (diff) | |
download | systemd-3f09629c2203e70446391e259dbc11a7ac0495d2.tar.gz |
Merge pull request #12628 from keszybz/dbus-execute
Rework cpu affinity parsing
Diffstat (limited to 'src/nspawn/nspawn-oci.c')
-rw-r--r-- | src/nspawn/nspawn-oci.c | 25 |
1 files changed, 11 insertions, 14 deletions
diff --git a/src/nspawn/nspawn-oci.c b/src/nspawn/nspawn-oci.c index b00ff289a6..b401a898a3 100644 --- a/src/nspawn/nspawn-oci.c +++ b/src/nspawn/nspawn-oci.c @@ -1266,8 +1266,7 @@ struct cpu_data { uint64_t shares; uint64_t quota; uint64_t period; - cpu_set_t *cpuset; - unsigned ncpus; + CPUSet cpu_set; }; static int oci_cgroup_cpu_shares(const char *name, JsonVariant *v, JsonDispatchFlags flags, void *userdata) { @@ -1302,21 +1301,20 @@ static int oci_cgroup_cpu_quota(const char *name, JsonVariant *v, JsonDispatchFl static int oci_cgroup_cpu_cpus(const char *name, JsonVariant *v, JsonDispatchFlags flags, void *userdata) { struct cpu_data *data = userdata; - cpu_set_t *set; + CPUSet set; const char *n; - int ncpus; + int r; assert(data); assert_se(n = json_variant_string(v)); - ncpus = parse_cpu_set(n, &set); - if (ncpus < 0) - return json_log(v, flags, ncpus, "Failed to parse CPU set specification: %s", n); + r = parse_cpu_set(n, &set); + if (r < 0) + return json_log(v, flags, r, "Failed to parse CPU set specification: %s", n); - CPU_FREE(data->cpuset); - data->cpuset = set; - data->ncpus = ncpus; + cpu_set_reset(&data->cpu_set); + data->cpu_set = set; return 0; } @@ -1345,13 +1343,12 @@ static int oci_cgroup_cpu(const char *name, JsonVariant *v, JsonDispatchFlags fl r = json_dispatch(v, table, oci_unexpected, flags, &data); if (r < 0) { - CPU_FREE(data.cpuset); + cpu_set_reset(&data.cpu_set); return r; } - CPU_FREE(s->cpuset); - s->cpuset = data.cpuset; - s->cpuset_ncpus = data.ncpus; + cpu_set_reset(&s->cpu_set); + s->cpu_set = data.cpu_set; if (data.shares != UINT64_MAX) { r = settings_allocate_properties(s); |