Nice job. Ya beat me too it. Acked-by: Michael H. Warfield <[email protected]>
On Thu, 2014-02-13 at 16:13 -0500, Dwight Engen wrote: > The kernel's Documentation/devices.txt says that these symlinks should > exist in /dev (they are listed in the "Compulsory" section). I'm not > currently adding nfsd and X0R since they are required for iBCS, but > they can be easily added to the array later if need be. > > Signed-off-by: Dwight Engen <[email protected]> > --- > src/lxc/conf.c | 37 +++++++++++++++++++++++++++++++++++++ > 1 file changed, 37 insertions(+) > > diff --git a/src/lxc/conf.c b/src/lxc/conf.c > index 6fa3db9..0de189f 100644 > --- a/src/lxc/conf.c > +++ b/src/lxc/conf.c > @@ -812,6 +812,38 @@ static int setup_utsname(struct utsname *utsname) > return 0; > } > > +struct dev_symlinks { > + const char *oldpath; > + const char *name; > +}; > + > +static const struct dev_symlinks dev_symlinks[] = { > + {"/proc/self/fd", "fd"}, > + {"/proc/self/fd/0", "stdin"}, > + {"/proc/self/fd/1", "stdout"}, > + {"/proc/self/fd/2", "stderr"}, > +}; > + > +static int setup_dev_symlinks(const struct lxc_rootfs *rootfs) > +{ > + char path[MAXPATHLEN]; > + int ret,i; > + > + > + for (i = 0; i < sizeof(dev_symlinks) / sizeof(dev_symlinks[0]); i++) { > + const struct dev_symlinks *d = &dev_symlinks[i]; > + ret = snprintf(path, sizeof(path), "%s/dev/%s", rootfs->mount, > d->name); > + if (ret < 0 || ret >= MAXPATHLEN) > + return -1; > + ret = symlink(d->oldpath, path); > + if (ret && errno != EEXIST) { > + SYSERROR("Error creating %s", path); > + return -1; > + } > + } > + return 0; > +} > + > static int setup_tty(const struct lxc_rootfs *rootfs, > const struct lxc_tty_info *tty_info, char *ttydir) > { > @@ -3616,6 +3648,11 @@ int lxc_setup(struct lxc_handler *handler) > return -1; > } > > + if (!lxc_conf->is_execute && setup_dev_symlinks(&lxc_conf->rootfs)) { > + ERROR("failed to setup /dev symlinks for '%s'", name); > + return -1; > + } > + > /* mount /proc if needed for LSM transition */ > if (lsm_proc_mount(lxc_conf) < 0) { > ERROR("failed to LSM mount proc for '%s'", name); > -- > 1.8.5.3 > > -- Michael H. Warfield (AI4NB) | (770) 978-7061 | [email protected] /\/\|=mhw=|\/\/ | (678) 463-0932 | http://www.wittsend.com/mhw/ NIC whois: MHW9 | An optimist believes we live in the best of all PGP Key: 0x674627FF | possible worlds. A pessimist is sure of it!
signature.asc
Description: This is a digitally signed message part
_______________________________________________ lxc-devel mailing list [email protected] http://lists.linuxcontainers.org/listinfo/lxc-devel
