From: Serge E. Hallyn <se...@us.ibm.com>

Signed-off-by: Serge E. Hallyn <se...@us.ibm.com>
---
 checkpoint/sys.c                 |    5 +++++
 include/linux/checkpoint_types.h |   18 +++++++++++++++++-
 2 files changed, 22 insertions(+), 1 deletions(-)

diff --git a/checkpoint/sys.c b/checkpoint/sys.c
index c888a12..0a486f0 100644
--- a/checkpoint/sys.c
+++ b/checkpoint/sys.c
@@ -249,6 +249,11 @@ static struct ckpt_ctx *ckpt_ctx_alloc(int fd, unsigned 
long uflags,
        spin_lock_init(&ctx->lock);
 #endif
 
+       mutex_init(&ctx->msg_buf_mutex);
+       spin_lock_init(&ctx->err_string_lock);
+       spin_lock_init(&ctx->fmt_buf_lock);
+       ctx->err_string_len = 0;
+
        err = -EBADF;
        ctx->file = fget(fd);
        if (!ctx->file)
diff --git a/include/linux/checkpoint_types.h b/include/linux/checkpoint_types.h
index 5cc11d9..46c58fb 100644
--- a/include/linux/checkpoint_types.h
+++ b/include/linux/checkpoint_types.h
@@ -59,7 +59,6 @@ struct ckpt_ctx {
        struct path fs_mnt;     /* container root (FIXME) */
 
        struct task_struct *tsk;/* checkpoint: current target task */
-       char err_string[256];   /* checkpoint: error string */
        int errno;              /* restart: errno that caused failure */
 
        struct list_head pgarr_list;    /* page array to dump VMA contents */
@@ -85,6 +84,23 @@ struct ckpt_ctx {
        struct list_head task_status;   /* list of status for each task */
        spinlock_t lock;
 #endif
+
+#define CKPT_MSG_BUFSZ 1024
+       /* err_string holds specific checkpoint error strings which may
+        * be crafted in a context where we can't write it out yet */
+       char err_string[CKPT_MSG_BUFSZ];
+       spinlock_t err_string_lock;
+       int err_string_len;
+
+       /* fmt_buf holds the result of processing an enhanced format
+        * string for use in crafting msg_buf */
+       char fmt_buf[CKPT_MSG_BUFSZ];
+       spinlock_t fmt_buf_lock;
+
+       /* msg_buf holds messages for writing to user log and syslog */
+       char msg_buf[CKPT_MSG_BUFSZ];
+       int msg_buf_len;
+       struct mutex msg_buf_mutex;
 };
 
 #endif /* __KERNEL__ */
-- 
1.6.1

_______________________________________________
Containers mailing list
contain...@lists.linux-foundation.org
https://lists.linux-foundation.org/mailman/listinfo/containers

_______________________________________________
Devel mailing list
Devel@openvz.org
https://openvz.org/mailman/listinfo/devel

Reply via email to