[Devel] [PATCH 1/4] debug: add a few ckpt_debugs
Serge E. Hallyn
serue at us.ibm.com
Mon Oct 5 14:51:14 PDT 2009
These were pulled out of the lsm-related patches into which they
had been embedded.
Signed-off-by: Serge E. Hallyn <serue at us.ibm.com>
---
checkpoint/files.c | 3 +++
checkpoint/process.c | 20 ++++++++++++++++----
kernel/cred.c | 2 ++
3 files changed, 21 insertions(+), 4 deletions(-)
diff --git a/checkpoint/files.c b/checkpoint/files.c
index 27e29a0..f6de07e 100644
--- a/checkpoint/files.c
+++ b/checkpoint/files.c
@@ -159,6 +159,9 @@ int checkpoint_file_common(struct ckpt_ctx *ctx, struct file *file,
if (h->f_credref < 0)
return h->f_credref;
+ ckpt_debug("file %s credref %d", file->f_dentry->d_name.name,
+ h->f_credref);
+
/* FIX: need also file->f_owner, etc */
return 0;
diff --git a/checkpoint/process.c b/checkpoint/process.c
index 424f688..8a7459d 100644
--- a/checkpoint/process.c
+++ b/checkpoint/process.c
@@ -581,11 +581,15 @@ static int restore_task_creds(struct ckpt_ctx *ctx)
realcred = ckpt_obj_fetch(ctx, h->cred_ref, CKPT_OBJ_CRED);
if (IS_ERR(realcred)) {
+ ckpt_debug("Error %ld fetching realcred (ref %d)\n",
+ PTR_ERR(realcred), h->cred_ref);
ret = PTR_ERR(realcred);
goto out;
}
ecred = ckpt_obj_fetch(ctx, h->ecred_ref, CKPT_OBJ_CRED);
if (IS_ERR(ecred)) {
+ ckpt_debug("Error %ld fetching ecred (ref %d)\n",
+ PTR_ERR(ecred), h->ecred_ref);
ret = PTR_ERR(ecred);
goto out;
}
@@ -593,6 +597,7 @@ static int restore_task_creds(struct ckpt_ctx *ctx)
ctx->ecred = ecred;
out:
+ ckpt_debug("Returning %d\n", ret);
ckpt_hdr_put(ctx, h);
return ret;
}
@@ -608,14 +613,21 @@ static int restore_task_objs(struct ckpt_ctx *ctx)
* referenced. See comment in checkpoint_task_objs.
*/
ret = restore_task_creds(ctx);
- if (!ret)
- ret = restore_task_ns(ctx);
- if (ret < 0)
+ if (ret < 0) {
+ ckpt_debug("restore_task_creds returned %d\n", ret);
+ return ret;
+ }
+ ret = restore_task_ns(ctx);
+ if (ret < 0) {
+ ckpt_debug("restore_task_ns returned %d\n", ret);
return ret;
+ }
h = ckpt_read_obj_type(ctx, sizeof(*h), CKPT_HDR_TASK_OBJS);
- if (IS_ERR(h))
+ if (IS_ERR(h)) {
+ ckpt_debug("Error fetching task obj\n");
return PTR_ERR(h);
+ }
ret = restore_obj_file_table(ctx, h->files_objref);
ckpt_debug("file_table: ret %d (%p)\n", ret, current->files);
diff --git a/kernel/cred.c b/kernel/cred.c
index 9710cae..62d28a4 100644
--- a/kernel/cred.c
+++ b/kernel/cred.c
@@ -724,6 +724,8 @@ static int do_checkpoint_cred(struct ckpt_ctx *ctx, struct cred *cred)
if (!h)
return -ENOMEM;
+ ckpt_debug("cred uid %d fsuid %d gid %d\n", cred->uid, cred->fsuid,
+ cred->gid);
h->uid = cred->uid;
h->suid = cred->suid;
h->euid = cred->euid;
--
1.6.1
_______________________________________________
Containers mailing list
Containers at lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers
More information about the Devel
mailing list