From: Serge Hallyn Date: Tue, 27 Feb 2018 18:05:30 +0000 (-0600) Subject: lxc_init: don't mount filesystems X-Git-Tag: lxc-2.0.10~196 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=abd512744174c5d245478556b4169f9b261c6b3b;p=thirdparty%2Flxc.git lxc_init: don't mount filesystems We have an extensive set of container config options to do this for us, and doing this unconditionally breaks several use cases. For instance, if we want to bind mount a /dev/shm using the container configuration, then lxc-execute, then lxc-init will rudely unmount the /dev/shm and remount it as a private tmpfs. Signed-off-by: Serge Hallyn --- diff --git a/src/lxc/initutils.c b/src/lxc/initutils.c index 12c33630b..56926fb5f 100644 --- a/src/lxc/initutils.c +++ b/src/lxc/initutils.c @@ -28,47 +28,6 @@ lxc_log_define(lxc_initutils, lxc); -static int mount_fs(const char *source, const char *target, const char *type) -{ - /* the umount may fail */ - if (umount(target)) - WARN("Failed to unmount %s : %s", target, strerror(errno)); - - if (mount(source, target, type, 0, NULL)) { - ERROR("Failed to mount %s : %s", target, strerror(errno)); - return -1; - } - - DEBUG("'%s' mounted on '%s'", source, target); - - return 0; -} - -extern void lxc_setup_fs(void) -{ - if (mount_fs("proc", "/proc", "proc")) - INFO("Failed to remount proc"); - - /* if /dev has been populated by us, /dev/shm does not exist */ - if (access("/dev/shm", F_OK) && mkdir("/dev/shm", 0777)) - INFO("Failed to create /dev/shm"); - - /* if we can't mount /dev/shm, continue anyway */ - if (mount_fs("shmfs", "/dev/shm", "tmpfs")) - INFO("Failed to mount /dev/shm"); - - /* If we were able to mount /dev/shm, then /dev exists */ - /* Sure, but it's read-only per config :) */ - if (access("/dev/mqueue", F_OK) && mkdir("/dev/mqueue", 0666)) { - DEBUG("Failed to create '/dev/mqueue'"); - return; - } - - /* continue even without posix message queue support */ - if (mount_fs("mqueue", "/dev/mqueue", "mqueue")) - INFO("Failed to mount /dev/mqueue"); -} - static char *copy_global_config_value(char *p) { int len = strlen(p); diff --git a/src/lxc/lxc_init.c b/src/lxc/lxc_init.c index 7cd990bdd..6cb870ef7 100644 --- a/src/lxc/lxc_init.c +++ b/src/lxc/lxc_init.c @@ -315,8 +315,6 @@ int main(int argc, char *argv[]) } } - lxc_setup_fs(); - remove_self(); pid = fork();