From: Lennart Poettering Date: Fri, 26 Aug 2016 09:27:38 +0000 (+0200) Subject: namespace: don't make the root directory of a namespace a mount if it already is one X-Git-Tag: v232~181^2~24 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=8f1ad200f010dc2106f7e3ff5879f0330ee36996;p=thirdparty%2Fsystemd.git namespace: don't make the root directory of a namespace a mount if it already is one Let's not stack mounts needlessly. --- diff --git a/src/core/namespace.c b/src/core/namespace.c index d3ab2e8e3e6..a7451ffbdc2 100644 --- a/src/core/namespace.c +++ b/src/core/namespace.c @@ -650,10 +650,15 @@ int setup_namespace( } if (root_directory) { - /* Turn directory into bind mount */ - if (mount(root_directory, root_directory, NULL, MS_BIND|MS_REC, NULL) < 0) { - r = -errno; + /* Turn directory into bind mount, if it isn't one yet */ + r = path_is_mount_point(root_directory, AT_SYMLINK_FOLLOW); + if (r < 0) goto finish; + if (r == 0) { + if (mount(root_directory, root_directory, NULL, MS_BIND|MS_REC, NULL) < 0) { + r = -errno; + goto finish; + } } }