X-Git-Url: http://www.chiark.greenend.org.uk/ucgi/~ianmdlvl/git?p=elogind.git;a=blobdiff_plain;f=src%2Fcore%2Fmount-setup.c;h=89adb0b4a3445e34430a705a68024f47f005a792;hp=56d358b0946f99f9ab6385fae05a2077cfcd9753;hb=c79bb9e4e2e5b96b2ae2c432bf8b0ff9674fce60;hpb=a383724e4202ee9681bd31cb668c44bdbbf83638 diff --git a/src/core/mount-setup.c b/src/core/mount-setup.c index 56d358b09..89adb0b4a 100644 --- a/src/core/mount-setup.c +++ b/src/core/mount-setup.c @@ -68,12 +68,6 @@ typedef struct MountPoint { * other ones we can delay until SELinux and IMA are loaded. */ #define N_EARLY_MOUNT 5 -#ifdef HAVE_XATTR -# define FS_XATTR_OPT ",xattr" -#else -# define FS_XATTR_OPT "" -#endif - static const MountPoint mount_table[] = { { "proc", "/proc", "proc", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, NULL, MNT_FATAL|MNT_IN_CONTAINER }, @@ -93,7 +87,11 @@ static const MountPoint mount_table[] = { NULL, MNT_FATAL|MNT_IN_CONTAINER }, { "tmpfs", "/sys/fs/cgroup", "tmpfs", "mode=755", MS_NOSUID|MS_NOEXEC|MS_NODEV|MS_STRICTATIME, NULL, MNT_IN_CONTAINER }, - { "cgroup", "/sys/fs/cgroup/systemd", "cgroup", "none,name=systemd" FS_XATTR_OPT, MS_NOSUID|MS_NOEXEC|MS_NODEV, +#ifdef HAVE_XATTR + { "cgroup", "/sys/fs/cgroup/systemd", "cgroup", "none,name=systemd,xattr", MS_NOSUID|MS_NOEXEC|MS_NODEV, + NULL, MNT_IN_CONTAINER }, +#endif + { "cgroup", "/sys/fs/cgroup/systemd", "cgroup", "none,name=systemd", MS_NOSUID|MS_NOEXEC|MS_NODEV, NULL, MNT_IN_CONTAINER }, { "pstore", "/sys/fs/pstore", "pstore", NULL, MS_NOSUID|MS_NOEXEC|MS_NODEV, NULL, MNT_NONE }, @@ -336,7 +334,7 @@ int mount_cgroup_controllers(char ***join_controllers) { char **i; for (i = *k; *i; i++) { - char *t; + _cleanup_free_ char *t; t = strappend("/sys/fs/cgroup/", *i); if (!t) { @@ -346,10 +344,8 @@ int mount_cgroup_controllers(char ***join_controllers) { } r = symlink(options, t); - free(t); - if (r < 0 && errno != EEXIST) { - log_error("Failed to create symlink: %m"); + log_error("Failed to create symlink %s: %m", t); r = -errno; free(options); goto finish;