diff -NurpPw --minimal linux-2.4.27-vs1.29/fs/attr.c linux-2.4.27-vs1.29-proc-cap/fs/attr.c --- linux-2.4.27-vs1.29/fs/attr.c 2004-11-01 15:17:03.000000000 +0100 +++ linux-2.4.27-vs1.29-proc-cap/fs/attr.c 2004-11-10 14:40:26.135325867 +0100 @@ -70,6 +70,9 @@ int inode_change_ok(struct inode *inode, } switch (inode->i_sb->s_magic) { case PROC_SUPER_MAGIC: + if (current->s_info && + (current->s_info->flags & VX_INFO_PROC_ACCESS)) + goto fine; printk(KERN_WARNING "VSW: xid=%d messing with the procfs.\n", current->vx_id); diff -NurpPw --minimal linux-2.4.27-vs1.29/include/linux/vcontext.h linux-2.4.27-vs1.29-proc-cap/include/linux/vcontext.h --- linux-2.4.27-vs1.29/include/linux/vcontext.h 2004-11-01 15:17:03.000000000 +0100 +++ linux-2.4.27-vs1.29-proc-cap/include/linux/vcontext.h 2004-11-01 16:20:22.000000000 +0100 @@ -18,6 +18,7 @@ #define VX_INFO_ULIMIT 64 /* Use ulimit of the current process */ /* to become the global limits */ /* of the context */ +#define VX_INFO_PROC_ACCESS 128 /* Allow the context to mess with the procfs */ #define MAX_S_CONTEXT 65535 /* Arbitrary limit */ #define MIN_D_CONTEXT 49152 /* dynamic contexts start here */