summaryrefslogtreecommitdiff
path: root/src/nspawn/nspawn-oci.c
diff options
context:
space:
mode:
authorMichal Sekletar <msekletar@users.noreply.github.com>2019-05-30 12:32:53 +0200
committerGitHub <noreply@github.com>2019-05-30 12:32:53 +0200
commit3f09629c2203e70446391e259dbc11a7ac0495d2 (patch)
tree19d7ce1b6e22ceaae339eefcb462475cf0b2fe40 /src/nspawn/nspawn-oci.c
parenta0267b30f8bd6ecdaa36e4195be4e34ffbacc581 (diff)
parent1f57a176af5152d05719bf43740e87a47e37af50 (diff)
downloadsystemd-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.c25
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);