mirror of
https://github.com/checkpoint-restore/criu
synced 2025-09-02 23:35:21 +00:00
pie: Split parasite_daemon into pieces
Signed-off-by: Pavel Emelyanov <xemul@virtuozzo.com>
This commit is contained in:
@@ -685,31 +685,11 @@ static int fini(void)
|
||||
return -1;
|
||||
}
|
||||
|
||||
static noinline __used int noinline parasite_daemon(void *args)
|
||||
static int parasite_daemon_cmd(int cmd, void *args)
|
||||
{
|
||||
struct ctl_msg m;
|
||||
int ret = -1;
|
||||
int ret;
|
||||
|
||||
pr_debug("Running daemon thread leader\n");
|
||||
|
||||
/* Reply we're alive */
|
||||
if (__parasite_daemon_reply_ack(PARASITE_CMD_INIT_DAEMON, 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:
|
||||
goto out;
|
||||
switch (cmd) {
|
||||
case PARASITE_CMD_DUMPPAGES:
|
||||
ret = dump_pages(args);
|
||||
break;
|
||||
@@ -750,11 +730,41 @@ static noinline __used int noinline parasite_daemon(void *args)
|
||||
ret = parasite_dump_cgroup(args);
|
||||
break;
|
||||
default:
|
||||
pr_err("Unknown command in parasite daemon thread leader: %d\n", m.cmd);
|
||||
pr_err("Unknown command in parasite daemon thread leader: %d\n", cmd);
|
||||
ret = -1;
|
||||
break;
|
||||
}
|
||||
|
||||
return ret;
|
||||
}
|
||||
|
||||
static noinline __used int noinline parasite_daemon(void *args)
|
||||
{
|
||||
struct ctl_msg m;
|
||||
int ret = -1;
|
||||
|
||||
pr_debug("Running daemon thread leader\n");
|
||||
|
||||
/* Reply we're alive */
|
||||
if (__parasite_daemon_reply_ack(PARASITE_CMD_INIT_DAEMON, 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;
|
||||
}
|
||||
|
||||
if (m.cmd == PARASITE_CMD_FINI)
|
||||
goto out;
|
||||
|
||||
ret = parasite_daemon_cmd(m.cmd, args);
|
||||
|
||||
if (__parasite_daemon_reply_ack(m.cmd, ret))
|
||||
break;
|
||||
|
||||
|
Reference in New Issue
Block a user