diff -NurpP --minimal linux-2.6.22.9-vs2.3.0.28.2/fs/attr.c linux-2.6.22.9-vs2.3.0.28.3/fs/attr.c
--- linux-2.6.22.9-vs2.3.0.28.2/fs/attr.c	2007-08-05 20:53:12 +0200
+++ linux-2.6.22.9-vs2.3.0.28.3/fs/attr.c	2007-10-25 13:27:44 +0200
@@ -64,22 +64,19 @@ int inode_change_ok(struct inode *inode,
 		goto fine;
 
 	if (IS_BARRIER(inode)) {
-		vxwprintk(1, "xid=%d messing with the barrier.",
-			vx_current_xid());
+		vxwprintk_task(1, "messing with the barrier.");
 		goto error;
 	}
 	switch (inode->i_sb->s_magic) {
 		case PROC_SUPER_MAGIC:
 			/* maybe allow that in the future? */
-			vxwprintk(1, "xid=%d messing with the procfs.",
-				vx_current_xid());
+			vxwprintk_task(1, "messing with the procfs.");
 			goto error;
 		case DEVPTS_SUPER_MAGIC:
 			/* devpts is xid tagged */
 			if (vx_check((xid_t)inode->i_tag, VS_IDENT))
 				goto fine;
-			vxwprintk(1, "xid=%d messing with the devpts.",
-				vx_current_xid());
+			vxwprintk_task(1, "messing with the devpts.");
 			goto error;
 	}
 fine:
diff -NurpP --minimal linux-2.6.22.9-vs2.3.0.28.2/fs/namei.c linux-2.6.22.9-vs2.3.0.28.3/fs/namei.c
--- linux-2.6.22.9-vs2.3.0.28.2/fs/namei.c	2007-10-19 23:56:54 +0200
+++ linux-2.6.22.9-vs2.3.0.28.3/fs/namei.c	2007-10-25 13:30:54 +0200
@@ -234,8 +234,7 @@ int generic_permission(struct inode *ino
 static inline int dx_barrier(struct inode *inode)
 {
 	if (IS_BARRIER(inode) && !vx_check(0, VS_ADMIN)) {
-		vxwprintk(1, "xid=%d did hit the barrier.",
-			vx_current_xid());
+		vxwprintk_task(1, "did hit the barrier.");
 		return 1;
 	}
 	return 0;
@@ -249,9 +248,8 @@ static inline int dx_permission(struct i
 	    dx_check(inode->i_tag, DX_HOSTID|DX_ADMIN|DX_WATCH|DX_IDENT))
 		return 0;
 
-	vxwprintk(1, "tag=%d denied access to %p[#%d,%lu] »%s«.",
-		dx_current_tag(), inode, inode->i_tag, inode->i_ino,
-		vxd_cond_path(nd));
+	vxwprintk_task(1, "denied access to %p[#%d,%lu] »%s«.",
+		inode, inode->i_tag, inode->i_ino, vxd_cond_path(nd));
 	return -EACCES;
 }
 
@@ -838,9 +836,8 @@ done:
 	__follow_mount(path);
 	return 0;
 hidden:
-	vxwprintk(1, "tag=%d did lookup hidden %p[#%d,%lu] »%s«.",
-		dx_current_tag(), inode, inode->i_tag, inode->i_ino,
-		vxd_path(dentry, mnt));
+	vxwprintk_task(1, "did lookup hidden %p[#%d,%lu] »%s«.",
+		inode, inode->i_tag, inode->i_ino, vxd_path(dentry, mnt));
 	dput(dentry);
 	return -ENOENT;
 
diff -NurpP --minimal linux-2.6.22.9-vs2.3.0.28.2/include/linux/vserver/debug.h linux-2.6.22.9-vs2.3.0.28.3/include/linux/vserver/debug.h
--- linux-2.6.22.9-vs2.3.0.28.2/include/linux/vserver/debug.h	2007-10-17 13:48:26 +0200
+++ linux-2.6.22.9-vs2.3.0.28.3/include/linux/vserver/debug.h	2007-10-25 13:38:47 +0200
@@ -89,11 +89,15 @@ void dump_vx_info_inactive(int);
 #ifdef	CONFIG_VSERVER_WARN
 
 #define VX_WARNLEVEL	KERN_WARNING "vxW: "
+#define VX_WARN_TASK	"[»%s«,%u:#%u|%u|%u] "
+#define VX_WARN_XID	"[xid #%u] "
+#define VX_WARN_NID	"[nid #%u] "
+#define VX_WARN_TAG	"[tag #%u] "
 
 #define vxwprintk(c, f, x...)					\
 	do {							\
 		if (c)						\
-			printk(VX_WARNLEVEL f "\n" , ##x);	\
+			printk(VX_WARNLEVEL f "\n", ##x);	\
 	} while (0)
 
 #else	/* CONFIG_VSERVER_WARN */
@@ -102,6 +106,16 @@ void dump_vx_info_inactive(int);
 
 #endif	/* CONFIG_VSERVER_WARN */
 
+#define vxwprintk_task(c, f, x...)				\
+	vxwprintk(c, VX_WARN_TASK f,				\
+		current->comm, current->pid,			\
+		current->xid, current->nid, current->tag, ##x)
+#define vxwprintk_xid(c, f, x...)				\
+	vxwprintk(c, VX_WARN_XID f, current->xid, x)
+#define vxwprintk_nid(c, f, x...)				\
+	vxwprintk(c, VX_WARN_NID f, current->nid, x)
+#define vxwprintk_tag(c, f, x...)				\
+	vxwprintk(c, VX_WARN_TAG f, current->tag, x)
 
 #ifdef	CONFIG_VSERVER_DEBUG
 #define vxd_assert_lock(l)	assert_spin_locked(l)
diff -NurpP --minimal linux-2.6.22.9-vs2.3.0.28.2/kernel/fork.c linux-2.6.22.9-vs2.3.0.28.3/kernel/fork.c
--- linux-2.6.22.9-vs2.3.0.28.2/kernel/fork.c	2007-10-04 23:47:21 +0200
+++ linux-2.6.22.9-vs2.3.0.28.3/kernel/fork.c	2007-10-25 13:31:50 +0200
@@ -1422,8 +1422,7 @@ long do_fork(unsigned long clone_flags,
 	/* kernel threads are host only */
 	if ((clone_flags & CLONE_KTHREAD) &&
 		!vx_capable(CAP_SYS_ADMIN, VXC_KTHREAD)) {
-		vxwprintk(1, "xid=%d tried to spawn a kernel thread.",
-			vx_current_xid());
+		vxwprintk_task(1, "tried to spawn a kernel thread.");
 		free_pid(pid);
 		return -EPERM;
 	}
diff -NurpP --minimal linux-2.6.22.9-vs2.3.0.28.2/kernel/vserver/cvirt_init.h linux-2.6.22.9-vs2.3.0.28.3/kernel/vserver/cvirt_init.h
--- linux-2.6.22.9-vs2.3.0.28.2/kernel/vserver/cvirt_init.h	2007-08-05 20:53:13 +0200
+++ linux-2.6.22.9-vs2.3.0.28.3/kernel/vserver/cvirt_init.h	2007-10-25 13:32:29 +0200
@@ -46,16 +46,16 @@ static inline void vx_info_exit_cvirt(st
 {
 	int value;
 
-	vxwprintk((value = atomic_read(&cvirt->nr_threads)),
+	vxwprintk_xid((value = atomic_read(&cvirt->nr_threads)),
 		"!!! cvirt: %p[nr_threads] = %d on exit.",
 		cvirt, value);
-	vxwprintk((value = atomic_read(&cvirt->nr_running)),
+	vxwprintk_xid((value = atomic_read(&cvirt->nr_running)),
 		"!!! cvirt: %p[nr_running] = %d on exit.",
 		cvirt, value);
-	vxwprintk((value = atomic_read(&cvirt->nr_uninterruptible)),
+	vxwprintk_xid((value = atomic_read(&cvirt->nr_uninterruptible)),
 		"!!! cvirt: %p[nr_uninterruptible] = %d on exit.",
 		cvirt, value);
-	vxwprintk((value = atomic_read(&cvirt->nr_onhold)),
+	vxwprintk_xid((value = atomic_read(&cvirt->nr_onhold)),
 		"!!! cvirt: %p[nr_onhold] = %d on exit.",
 		cvirt, value);
 	return;
diff -NurpP --minimal linux-2.6.22.9-vs2.3.0.28.2/kernel/vserver/limit_init.h linux-2.6.22.9-vs2.3.0.28.3/kernel/vserver/limit_init.h
--- linux-2.6.22.9-vs2.3.0.28.2/kernel/vserver/limit_init.h	2007-08-05 20:53:13 +0200
+++ linux-2.6.22.9-vs2.3.0.28.3/kernel/vserver/limit_init.h	2007-10-25 13:34:10 +0200
@@ -24,7 +24,7 @@ static inline void vx_info_exit_limit(st
 		if ((1 << lim) & VLIM_NOCHECK)
 			continue;
 		value = __rlim_get(limit, lim);
-		vxwprintk(value,
+		vxwprintk_xid(value,
 			"!!! limit: %p[%s,%d] = %ld on exit.",
 			limit, vlimit_name[lim], lim, (long)value);
 	}
diff -NurpP --minimal linux-2.6.22.9-vs2.3.0.28.2/kernel/vserver/switch.c linux-2.6.22.9-vs2.3.0.28.3/kernel/vserver/switch.c
--- linux-2.6.22.9-vs2.3.0.28.2/kernel/vserver/switch.c	2007-10-11 01:10:22 +0200
+++ linux-2.6.22.9-vs2.3.0.28.3/kernel/vserver/switch.c	2007-10-25 13:34:29 +0200
@@ -265,7 +265,7 @@ long do_vcmd(uint32_t cmd, uint32_t id,
 		return __COMPAT(vc_read_monitor, id, data, compat);
 #endif
 	default:
-		vxwprintk(1, "unimplemented VCMD_%02d_%d[%d]",
+		vxwprintk_task(1, "unimplemented VCMD_%02d_%d[%d]",
 			VC_CATEGORY(cmd), VC_COMMAND(cmd), VC_VERSION(cmd));
 	}
 	return -ENOSYS;
