diff options
author | Lennart Poettering <lennart@poettering.net> | 2016-01-05 12:51:14 +0100 |
---|---|---|
committer | Lennart Poettering <lennart@poettering.net> | 2016-01-05 12:51:14 +0100 |
commit | 2135de9adbe880ac80cb82e25347ff5dcc958570 (patch) | |
tree | bba9bbdd804022b421247230d7d8aeb4de7fdbda | |
parent | d3eae7d8c4fccfe2952ec9e07f8cadab99b485a5 (diff) | |
parent | ea2b93a8ee8678b459a49d193333cec6e4a49e70 (diff) |
Merge pull request #2205 from pohly/cgroup-smack-run-label
mount-setup.c: fix handling of symlink Smack labelling in cgroup setup
-rw-r--r-- | src/core/mount-setup.c | 15 |
1 files changed, 10 insertions, 5 deletions
diff --git a/src/core/mount-setup.c b/src/core/mount-setup.c index 2b8d590ed1..d73b319c5d 100644 --- a/src/core/mount-setup.c +++ b/src/core/mount-setup.c @@ -304,13 +304,18 @@ int mount_cgroup_controllers(char ***join_controllers) { return log_oom(); r = symlink(options, t); - if (r < 0 && errno != EEXIST) - return log_error_errno(errno, "Failed to create symlink %s: %m", t); + if (r >= 0) { #ifdef SMACK_RUN_LABEL - r = mac_smack_copy(t, options); - if (r < 0 && r != -EOPNOTSUPP) - return log_error_errno(r, "Failed to copy smack label from %s to %s: %m", options, t); + _cleanup_free_ char *src; + src = strappend("/sys/fs/cgroup/", options); + if (!src) + return log_oom(); + r = mac_smack_copy(t, src); + if (r < 0 && r != -EOPNOTSUPP) + return log_error_errno(r, "Failed to copy smack label from %s to %s: %m", src, t); #endif + } else if (errno != EEXIST) + return log_error_errno(errno, "Failed to create symlink %s: %m", t); } } } |