From 946c2c74cd94602fb633c178e36d41559431e75e Mon Sep 17 00:00:00 2001
From: Kay Sievers <kay@vrfy.org>
Date: Wed, 18 Apr 2012 13:37:45 +0200
Subject: [PATCH] remove MS_* which can not be combined with current kernel
code
MS_BIND|MS_MOVE can not be combined:
do_mount()
else if (flags & MS_BIND)
do_loopback(&path, dev_name, flags & MS_REC);
[...]
else if (flags & MS_MOVE)
do_move_mount(&path, dev_name);
MS_REMOUNT|MS_UNBINDABLE can not be combined:
do_mount()
if (flags & MS_REMOUNT)
do_remount(&path, flags & ~MS_REMOUNT, mnt_flags, data_page);
[...]
else if (flags & (MS_SHARED | MS_PRIVATE | MS_SLAVE | MS_UNBINDABLE))
do_change_type(&path, flags);
(cherry picked from commit 4d46fec56db73e1d2d01076792f9b8f3231d5cb1)
---
src/core/namespace.c | 2 +-
src/nspawn/nspawn.c | 2 +-
2 files changed, 2 insertions(+), 2 deletions(-)
diff --git a/src/core/namespace.c b/src/core/namespace.c
index 09bc829..2462552 100644
--- a/src/core/namespace.c
+++ b/src/core/namespace.c
@@ -167,7 +167,7 @@ static int apply_mount(Path *p, const char *root_dir, const char *inaccessible_d
/* Avoid exponential growth of trees */
if (r >= 0 && path_equal(p->path, "/"))
- r = mount(NULL, where, NULL, MS_REMOUNT|MS_BIND|MS_UNBINDABLE|flags, NULL);
+ r = mount(NULL, where, NULL, MS_REMOUNT|MS_BIND|flags, NULL);
if (r < 0) {
r = -errno;
diff --git a/src/nspawn/nspawn.c b/src/nspawn/nspawn.c
index f44cab9..0075cdc 100644
--- a/src/nspawn/nspawn.c
+++ b/src/nspawn/nspawn.c
@@ -928,7 +928,7 @@ int main(int argc, char *argv[]) {
dup2(STDIN_FILENO, STDERR_FILENO) != STDERR_FILENO)
goto child_fail;
- if (mount(arg_directory, "/", "bind", MS_BIND|MS_MOVE, NULL) < 0) {
+ if (mount(arg_directory, "/", "bind", MS_BIND, NULL) < 0) {
log_error("mount(MS_MOVE) failed: %m");
goto child_fail;
}