From d8ee923a211595ca6f308f724d37f1ece018e57f Mon Sep 17 00:00:00 2001 From: LiFeng Date: Thu, 18 Jan 2018 17:26:11 -0500 Subject: [PATCH] Create console when the rootfs is NULL Signed-off-by: LiFeng --- src/lxc/console.c | 6 ------ src/lxc/start.c | 44 +++++++++++++++++--------------------------- 2 files changed, 17 insertions(+), 33 deletions(-) diff --git a/src/lxc/console.c b/src/lxc/console.c index acb5ac471..5ee4984c0 100644 --- a/src/lxc/console.c +++ b/src/lxc/console.c @@ -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; diff --git a/src/lxc/start.c b/src/lxc/start.c index b779af2f1..26229e311 100644 --- a/src/lxc/start.c +++ b/src/lxc/start.c @@ -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); -- 2.47.2