mirror of
https://git.proxmox.com/git/mirror_lxc
synced 2025-07-27 08:12:20 +00:00
Use the configuration structure for pts
Avoid to use the directory structure. Signed-off-by: Daniel Lezcano <dlezcano@fr.ibm.com>
This commit is contained in:
parent
4e5440c654
commit
d852c78cf0
@ -605,28 +605,6 @@ static int configure_rootfs(const char *name, const char *rootfs)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int configure_pts(const char *name, int pts)
|
|
||||||
{
|
|
||||||
char path[MAXPATHLEN];
|
|
||||||
char *maxpts;
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
if (asprintf(&maxpts, "%d", pts) < 0) {
|
|
||||||
ERROR("failed to convert max pts number");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
snprintf(path, MAXPATHLEN, LXCPATH "/%s", name);
|
|
||||||
|
|
||||||
ret = write_info(path, "pts", maxpts);
|
|
||||||
if (ret)
|
|
||||||
ERROR("failed to write the pts info");
|
|
||||||
|
|
||||||
free(maxpts);
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
static int configure_mount(const char *name, const char *fstab)
|
static int configure_mount(const char *name, const char *fstab)
|
||||||
{
|
{
|
||||||
char path[MAXPATHLEN];
|
char path[MAXPATHLEN];
|
||||||
@ -859,18 +837,17 @@ out:
|
|||||||
return ret;
|
return ret;
|
||||||
}
|
}
|
||||||
|
|
||||||
static int setup_pts(const char *name)
|
static int setup_pts(int pts)
|
||||||
{
|
{
|
||||||
char mountname[MAXPATHLEN];
|
if (!pts)
|
||||||
|
return 0;
|
||||||
|
|
||||||
if (!access("/dev/pts/ptmx", F_OK) && umount("/dev/pts")) {
|
if (!access("/dev/pts/ptmx", F_OK) && umount("/dev/pts")) {
|
||||||
SYSERROR("failed to umount 'dev/pts'");
|
SYSERROR("failed to umount 'dev/pts'");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
snprintf(mountname, MAXPATHLEN, "%spts", name);
|
if (mount("devpts", "/dev/pts", "devpts", MS_MGC_VAL, "newinstance")) {
|
||||||
|
|
||||||
if (mount(mountname, "/dev/pts", "devpts", MS_MGC_VAL, "newinstance")) {
|
|
||||||
SYSERROR("failed to mount a new instance of '/dev/pts'");
|
SYSERROR("failed to mount a new instance of '/dev/pts'");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
@ -894,6 +871,7 @@ static int setup_pts(const char *name)
|
|||||||
}
|
}
|
||||||
|
|
||||||
INFO("created new pts instance");
|
INFO("created new pts instance");
|
||||||
|
|
||||||
out:
|
out:
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
@ -1425,11 +1403,6 @@ int lxc_configure(const char *name, struct lxc_conf *conf)
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (conf->pts && configure_pts(name, conf->pts)) {
|
|
||||||
ERROR("failed to configure a new pts instance");
|
|
||||||
return -1;
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -1851,7 +1824,7 @@ int lxc_setup(const char *name, const char *cons,
|
|||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
|
||||||
if (lxc_conf.pts && setup_pts(name)) {
|
if (setup_pts(lxc_conf.pts)) {
|
||||||
ERROR("failed to setup the new pts instance");
|
ERROR("failed to setup the new pts instance");
|
||||||
return -1;
|
return -1;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user