Commit 842dbf6e authored by Andrey Vagin's avatar Andrey Vagin Committed by Pavel Emelyanov

parasite: exit from parasite code if something failed

The controll socket is shut down for only writing, because it will wait
FINI command.

https://bugzilla.openvz.org/show_bug.cgi?id=2622Signed-off-by: 's avatarAndrey Vagin <avagin@openvz.org>
Signed-off-by: 's avatarPavel Emelyanov <xemul@parallels.com>
parent cb9574a3
......@@ -460,10 +460,17 @@ static noinline __used int noinline parasite_daemon(void *args)
if (__parasite_daemon_reply_ack(PARASITE_CMD_DAEMONIZE, 0))
goto out;
ret = 0;
while (1) {
if (__parasite_daemon_wait_msg(&m))
break;
if (ret && m.cmd != PARASITE_CMD_FINI) {
pr_err("Command rejected\n");
continue;
}
switch (m.cmd) {
case PARASITE_CMD_FINI:
ret = fini();
......@@ -513,6 +520,11 @@ static noinline __used int noinline parasite_daemon(void *args)
if (__parasite_daemon_reply_ack(m.cmd, ret))
break;
if (ret) {
pr_err("Close the control socket for writing\n");
sys_shutdown(tsock, SHUT_WR);
}
}
out:
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment