summary refs log tree commit diff
path: root/src/libstore
diff options
context:
space:
mode:
authorEelco Dolstra <eelco.dolstra@logicblox.com>2012-08-20 15:27:00 -0400
committerEelco Dolstra <eelco.dolstra@logicblox.com>2012-08-20 15:27:00 -0400
commitf0eab0636b73a4f16b7639d30956d9072d5573cb (patch)
tree405de20734a595e20fdfc874f7efd7d95ffd605a /src/libstore
parent862c4c5ec509e05815d99fb4b80558974148b8c5 (diff)
downloadguix-f0eab0636b73a4f16b7639d30956d9072d5573cb.tar.gz
Don't bind-mount /proc since we mount our own
Diffstat (limited to 'src/libstore')
-rw-r--r--src/libstore/build.cc4
1 files changed, 2 insertions, 2 deletions
diff --git a/src/libstore/build.cc b/src/libstore/build.cc
index a7aea164c0..9da8084bf5 100644
--- a/src/libstore/build.cc
+++ b/src/libstore/build.cc
@@ -1859,16 +1859,16 @@ void DerivationGoal::initChild()
             foreach (PathSet::iterator, i, dirsInChroot) {
                 Path source = *i;
                 Path target = chrootRootDir + source;
+                if (source == "/proc") continue; // backwards compatibility
                 debug(format("bind mounting `%1%' to `%2%'") % source % target);
-                
                 createDirs(target);
-                
                 if (mount(source.c_str(), target.c_str(), "", MS_BIND, 0) == -1)
                     throw SysError(format("bind mount from `%1%' to `%2%' failed") % source % target);
             }
 
             /* Bind a new instance of procfs on /proc to reflect our
                private PID namespace. */
+            createDirs(chrootRootDir + "/proc");
             if (mount("none", (chrootRootDir + "/proc").c_str(), "proc", 0, 0) == -1)
                 throw SysError("mounting /proc");