aboutsummaryrefslogtreecommitdiff
path: root/src
diff options
context:
space:
mode:
Diffstat (limited to 'src')
-rw-r--r--src/lxc/conf.c28
1 files changed, 21 insertions, 7 deletions
diff --git a/src/lxc/conf.c b/src/lxc/conf.c
index 8cb8e20..aae52f4 100644
--- a/src/lxc/conf.c
+++ b/src/lxc/conf.c
@@ -593,14 +593,11 @@ static int setup_rootfs_pivot_root(const char *rootfs, const char *pivotdir)
static int setup_rootfs(const struct lxc_rootfs *rootfs)
{
- char *mpath = LXCROOTFSMOUNT;
+ char *mpath = rootfs->mount ? rootfs->mount : LXCROOTFSMOUNT;
if (!rootfs->path)
return 0;
- if (rootfs->mount)
- mpath = rootfs->mount;
-
if (access(mpath, F_OK)) {
SYSERROR("failed to access to '%s', check it is present",
mpath);
@@ -614,11 +611,23 @@ static int setup_rootfs(const struct lxc_rootfs *rootfs)
DEBUG("mounted '%s' on '%s'", rootfs->path, mpath);
+ return 0;
+}
+
+int setup_pivot_root(const struct lxc_rootfs *rootfs)
+{
+ char *mpath = rootfs->mount ? rootfs->mount : LXCROOTFSMOUNT;
+
+ if (!rootfs->path)
+ return 0;
+
if (setup_rootfs_pivot_root(mpath, rootfs->pivot)) {
ERROR("failed to setup pivot root");
return -1;
}
+ DEBUG("pivot rooted to '%s'", mpath);
+
return 0;
}
@@ -1457,8 +1466,8 @@ int lxc_setup(const char *name, struct lxc_conf *lxc_conf)
return -1;
}
- if (setup_cgroup(name, &lxc_conf->cgroup)) {
- ERROR("failed to setup the cgroups for '%s'", name);
+ if (setup_rootfs(&lxc_conf->rootfs)) {
+ ERROR("failed to setup rootfs for '%s'", name);
return -1;
}
@@ -1472,6 +1481,11 @@ int lxc_setup(const char *name, struct lxc_conf *lxc_conf)
return -1;
}
+ if (setup_cgroup(name, &lxc_conf->cgroup)) {
+ ERROR("failed to setup the cgroups for '%s'", name);
+ return -1;
+ }
+
if (setup_console(&lxc_conf->rootfs, &lxc_conf->console)) {
ERROR("failed to setup the console for '%s'", name);
return -1;
@@ -1482,7 +1496,7 @@ int lxc_setup(const char *name, struct lxc_conf *lxc_conf)
return -1;
}
- if (setup_rootfs(&lxc_conf->rootfs)) {
+ if (setup_pivot_root(&lxc_conf->rootfs)) {
ERROR("failed to set rootfs for '%s'", name);
return -1;
}