[CRIU] [PATCH 2/5] exec: return non-zero code in error cases
Andrey Vagin
avagin at openvz.org
Thu Jul 14 11:44:15 PDT 2016
From: Andrew Vagin <avagin at virtuozzo.com>
[root at fc22-vm criu]# ./criu/criu exec -t 27573 dup21 3 0
Error (cr-exec.c:164): Unknown syscall [dup21]
[root at fc22-vm criu]# echo 0
0
Signed-off-by: Andrew Vagin <avagin at virtuozzo.com>
---
criu/cr-exec.c | 9 ++++++---
1 file changed, 6 insertions(+), 3 deletions(-)
diff --git a/criu/cr-exec.c b/criu/cr-exec.c
index f6c2396..26a8497 100644
--- a/criu/cr-exec.c
+++ b/criu/cr-exec.c
@@ -118,7 +118,7 @@ int cr_exec(int pid, char **opt)
struct syscall_exec_desc *si;
struct parasite_ctl *ctl;
struct vm_area_list vmas;
- int ret = -1, prev_state;
+ int ret, prev_state, exit_code = -1;
struct proc_status_creds *creds;
if (!sys_name) {
@@ -166,13 +166,16 @@ int cr_exec(int pid, char **opt)
}
ret = execute_syscall(ctl, si, opt + 1);
- if (ret < 0)
+ if (ret < 0) {
pr_err("Can't execute syscall remotely\n");
+ goto out_cure;
+ }
+ exit_code = 0;
out_cure:
parasite_cure_seized(ctl);
out_unseize:
unseize_task(pid, prev_state, prev_state);
out:
- return ret;
+ return exit_code;
}
--
2.7.4
More information about the CRIU
mailing list