[PATCH] c/r: make ckpt_debug() safe if called by dead tasks

Oren Laadan orenl at librato.com
Thu Sep 24 14:04:52 PDT 2009


From: Oren Laadan <orenl at cs.columbia.edu>

One may not call task_pid_vnr() on dead tasks because they don't have
a valid ->nxproxy pointer. However, the ckpt_ctx cleanup may be called
by a dead task from do_exit(), in the case of zombie or "ghost" tasks.

This patch makes ckpt_debug() safe to call from dead tasks context, so
that debug printing from code called by ckpt_ctx_free() is cool.

Signed-off-by: Oren Laadan <orenl at cs.columbia.edu>
---
 include/linux/checkpoint.h |    4 +++-
 1 files changed, 3 insertions(+), 1 deletions(-)

diff --git a/include/linux/checkpoint.h b/include/linux/checkpoint.h
index e00dd70..5294a96 100644
--- a/include/linux/checkpoint.h
+++ b/include/linux/checkpoint.h
@@ -334,7 +334,9 @@ extern unsigned long ckpt_debug_level;
 	do {								\
 		if (ckpt_debug_level & (level))				\
 			printk(KERN_DEBUG "[%d:%d:c/r:%s:%d] " fmt,	\
-				current->pid, task_pid_vnr(current),	\
+				current->pid,				\
+				current->nsproxy ?			\
+				task_pid_vnr(current) : -1,		\
 				__func__, __LINE__, ## args);		\
 	} while (0)
 
-- 
1.6.0.4



More information about the Containers mailing list