diff -NurpP linux-2.6.22.9-vs2.3.0.26.5/fs/namei.c linux-2.6.22.9-vs2.3.0.26.6/fs/namei.c --- linux-2.6.22.9-vs2.3.0.26.5/fs/namei.c 2007-10-05 14:54:36 +0200 +++ linux-2.6.22.9-vs2.3.0.26.6/fs/namei.c 2007-10-10 19:14:11 +0200 @@ -286,8 +286,12 @@ int permission(struct inode *inode, int /* Ordinary permission routines do not understand MAY_APPEND. */ submask = mask & ~MAY_APPEND; - if ((retval = dx_permission(inode, mask, nd))) + + if ((inode->i_sb->s_magic != DEVPTS_SUPER_MAGIC) && + (inode->i_sb->s_magic != PROC_SUPER_MAGIC) && + (retval = dx_permission(inode, mask, nd))) return retval; + if (inode->i_op && inode->i_op->permission) retval = inode->i_op->permission(inode, submask, nd); else diff -NurpP linux-2.6.22.9-vs2.3.0.26.5/include/linux/vserver/tag.h linux-2.6.22.9-vs2.3.0.26.6/include/linux/vserver/tag.h --- linux-2.6.22.9-vs2.3.0.26.5/include/linux/vserver/tag.h 2007-09-05 02:34:51 +0200 +++ linux-2.6.22.9-vs2.3.0.26.6/include/linux/vserver/tag.h 2007-10-10 19:05:04 +0200 @@ -125,7 +125,8 @@ struct peer_tag { int32_t nid; }; -#define dx_notagcheck(nd) ((nd) && (nd)->mnt && ((nd)->mnt->mnt_flags & MNT_NOTAGCHECK)) +#define dx_notagcheck(nd) \ + ((nd) && (nd)->mnt && ((nd)->mnt->mnt_flags & MNT_NOTAGCHECK)) int dx_parse_tag(char *string, tag_t *tag, int remove);