summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--TODO2
-rw-r--r--src/core/mount-setup.c9
2 files changed, 9 insertions, 2 deletions
diff --git a/TODO b/TODO
index 6dc36cb99d..6d99afe63b 100644
--- a/TODO
+++ b/TODO
@@ -49,8 +49,6 @@ Features:
* .journal~ files should be parsed too
-* use mount --make-shared on / by default
-
* allow services with no ExecStart= but with an ExecStop=
* add proper journal support to "systemctl --user status ..."
diff --git a/src/core/mount-setup.c b/src/core/mount-setup.c
index c10c6dad1c..e86a89321e 100644
--- a/src/core/mount-setup.c
+++ b/src/core/mount-setup.c
@@ -400,6 +400,15 @@ int mount_setup(bool loaded_policy) {
* udevd. */
dev_setup();
+ /* Mark the root directory as shared in regards to mount
+ * propagation. The kernel defaults to "private", but we think
+ * it makes more sense to have a default of "shared" so that
+ * nspawn and the container tools work out of the box. If
+ * specific setups need other settings they can reset the
+ * propagation mode to private if needed. */
+ if (mount(NULL, "/", NULL, MS_REC|MS_SHARED, NULL) < 0)
+ log_warning("Failed to set up the root directory for shared mount propagation: %m");
+
/* Create a few directories we always want around */
mkdir_label("/run/systemd", 0755);
mkdir_label("/run/systemd/system", 0755);