[lxc-devel] [lxc/master] Create console when the rootfs is NULL
lifeng68 on Github
lxc-bot at linuxcontainers.org
Thu Jan 18 10:11:42 UTC 2018
A non-text attachment was scrubbed...
Name: not available
Type: text/x-mailbox
Size: 712 bytes
Desc: not available
URL: <http://lists.linuxcontainers.org/pipermail/lxc-devel/attachments/20180118/df531b34/attachment.bin>
-------------- next part --------------
From 7bc5a80badf339ccc14d6bfaa0ab666181f4696e Mon Sep 17 00:00:00 2001
From: LiFeng <lifeng68 at huawei.com>
Date: Thu, 18 Jan 2018 17:26:11 -0500
Subject: [PATCH] Create console when the rootfs is NULL
Signed-off-by: LiFeng <lifeng68 at huawei.com>
---
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 f875f8461..d613d7987 100644
--- a/src/lxc/console.c
+++ b/src/lxc/console.c
@@ -747,12 +747,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 89a194fd1..97e3231f1 100644
--- a/src/lxc/start.c
+++ b/src/lxc/start.c
@@ -472,7 +472,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);
@@ -481,12 +481,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);
@@ -495,20 +493,16 @@ int lxc_poll(const char *name, struct lxc_handler *handler)
goto out_mainloop_console;
}
- 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);
@@ -525,19 +519,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);
More information about the lxc-devel
mailing list