]> git.ipfire.org Git - thirdparty/lxc.git/commitdiff
Create console when the rootfs is NULL
authorLiFeng <lifeng68@huawei.com>
Thu, 18 Jan 2018 22:26:11 +0000 (17:26 -0500)
committerChristian Brauner <christian.brauner@ubuntu.com>
Mon, 5 Feb 2018 18:56:50 +0000 (19:56 +0100)
Signed-off-by: LiFeng <lifeng68@huawei.com>
src/lxc/console.c
src/lxc/start.c

index acb5ac471ae12cd0e276f1a6fd78773ff98b799d..5ee4984c0ac6a36407b57cd99e4a4493641c4e78 100644 (file)
@@ -641,12 +641,6 @@ int lxc_console_create(struct lxc_conf *conf)
        int ret;
        struct lxc_console *console = &conf->console;
 
-       if (!conf->rootfs.path) {
-               INFO("Container does not have a rootfs. The console will be "
-                    "shared with the host");
-               return 0;
-       }
-
        if (console->path && !strcmp(console->path, "none")) {
                INFO("No console was requested");
                return 0;
index b779af2f1f0e5b340b4ac59ff87b8493db8eb3d4..26229e3110a433af0970ff9fe4a048cda12a38b6 100644 (file)
@@ -485,7 +485,7 @@ int lxc_set_state(const char *name, struct lxc_handler *handler,
 int lxc_poll(const char *name, struct lxc_handler *handler)
 {
        int ret;
-       bool has_console = (handler->conf->rootfs.path != NULL);
+       struct lxc_console *console = &handler->conf->console;
        struct lxc_epoll_descr descr, descr_console;
 
        ret = lxc_mainloop_open(&descr);
@@ -494,12 +494,10 @@ int lxc_poll(const char *name, struct lxc_handler *handler)
                goto out_sigfd;
        }
 
-       if (has_console) {
-               ret = lxc_mainloop_open(&descr_console);
-               if (ret < 0) {
-                       ERROR("Failed to create console mainloop");
-                       goto out_mainloop;
-               }
+       ret = lxc_mainloop_open(&descr_console);
+       if (ret < 0) {
+               ERROR("Failed to create console mainloop");
+               goto out_mainloop;
        }
 
        ret = lxc_mainloop_add_handler(&descr, handler->sigfd, signal_handler, handler);
@@ -519,20 +517,16 @@ int lxc_poll(const char *name, struct lxc_handler *handler)
                #endif
        }
 
-       if (has_console) {
-               struct lxc_console *console = &handler->conf->console;
-
-               ret = lxc_console_mainloop_add(&descr, console);
-               if (ret < 0) {
-                       ERROR("Failed to add console handlers to mainloop");
-                       goto out_mainloop_console;
-               }
+       ret = lxc_console_mainloop_add(&descr, console);
+       if (ret < 0) {
+               ERROR("Failed to add console handlers to mainloop");
+               goto out_mainloop_console;
+       }
 
-               ret = lxc_console_mainloop_add(&descr_console, console);
-               if (ret < 0) {
-                       ERROR("Failed to add console handlers to console mainloop");
-                       goto out_mainloop_console;
-               }
+       ret = lxc_console_mainloop_add(&descr_console, console);
+       if (ret < 0) {
+               ERROR("Failed to add console handlers to console mainloop");
+               goto out_mainloop_console;
        }
 
        ret = lxc_cmd_mainloop_add(name, &descr, handler);
@@ -549,19 +543,15 @@ int lxc_poll(const char *name, struct lxc_handler *handler)
        if (ret < 0 || !handler->init_died)
                goto out_mainloop;
 
-       if (has_console)
-               ret = lxc_mainloop(&descr_console, 0);
-
+       ret = lxc_mainloop(&descr_console, 0);
 
 out_mainloop:
        lxc_mainloop_close(&descr);
        TRACE("Closed mainloop");
 
 out_mainloop_console:
-       if (has_console) {
-               lxc_mainloop_close(&descr_console);
-               TRACE("Closed console mainloop");
-       }
+       lxc_mainloop_close(&descr_console);
+       TRACE("Closed console mainloop");
 
 out_sigfd:
        close(handler->sigfd);