Make the flow more regular. With the existing code, one can barely find the call to checkpoint_task_obj_ns() even if looking for it! This is on top of the task->fs c/r patch I sent last week. Signed-off-by: Serge E. Hallyn <serue@xxxxxxxxxx> --- checkpoint/process.c | 17 ++++++++++++----- 1 files changed, 12 insertions(+), 5 deletions(-) diff --git a/checkpoint/process.c b/checkpoint/process.c index 603bbf4..bef909a 100644 --- a/checkpoint/process.c +++ b/checkpoint/process.c @@ -247,12 +247,17 @@ static int checkpoint_task_objs(struct ckpt_ctx *ctx, struct task_struct *t) ret = checkpoint_task_creds(ctx, t); ckpt_debug("cred: objref %d\n", ret); - if (!ret) { - ret = checkpoint_task_ns(ctx, t); - ckpt_debug("ns: objref %d\n", ret); + if (ret < 0) { + ckpt_err(ctx, ret, "%(T)process credentials\n"); + return ret; } - if (ret < 0) + + ret = checkpoint_task_ns(ctx, t); + ckpt_debug("ns: objref %d\n", ret); + if (ret < 0) { + ckpt_err(ctx, ret, "%(T)process namespaces\n"); return ret; + } fs_objref = checkpoint_get_task_fs(ctx, t); if (fs_objref < 0) { @@ -291,8 +296,10 @@ static int checkpoint_task_objs(struct ckpt_ctx *ctx, struct task_struct *t) signal_objref = ckpt_obj_lookup_add(ctx, t->signal, CKPT_OBJ_SIGNAL, &first); ckpt_debug("signal: objref %d\n", signal_objref); - if (signal_objref < 0) + if (signal_objref < 0) { + ckpt_err(ctx, signal_objref, "%(T)process signals\n"); return signal_objref; + } h = ckpt_hdr_get_type(ctx, sizeof(*h), CKPT_HDR_TASK_OBJS); if (!h) -- 1.6.0.4 _______________________________________________ Containers mailing list Containers@xxxxxxxxxxxxxxxxxxxxxxxxxx https://lists.linux-foundation.org/mailman/listinfo/containers