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;