Commit ac778708 by Daniel Lezcano Committed by Daniel Lezcano

mount the rootfs to the mount directory first

Split the rootfs setup by mounting the rootfs to the mount point. This mount point will be used as the facto place where the rootfs is placed. Signed-off-by: 's avatarDaniel Lezcano <dlezcano@fr.ibm.com>
parent 2a7c16dc
......@@ -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;
}
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment