Merge to Fedora kernel-2.6.18-1.2255_FC5-vs2.0.2.2-rc9 patched with stable patch...
[linux-2.6.git] / fs / namei.c
index 805a35e..b9d0804 100644 (file)
@@ -230,7 +230,7 @@ int generic_permission(struct inode *inode, int mask,
 
 static inline int vx_barrier(struct inode *inode)
 {
-       if (IS_BARRIER(inode) && !vx_check(0, VX_ADMIN)) {
+       if (IS_BARRIER(inode) && !vx_check(0, VX_ADMIN|VX_WATCH)) {
                vxwprintk(1, "xid=%d did hit the barrier.",
                        vx_current_xid());
                return 1;
@@ -807,9 +807,10 @@ static int do_lookup(struct nameidata *nd, struct qstr *name,
                goto need_lookup;
        if (dentry->d_op && dentry->d_op->d_revalidate)
                goto need_revalidate;
+done:
        inode = dentry->d_inode;
        if (!inode)
-               goto done;
+               goto no_inode;
        if (!vx_check(inode->i_xid, VX_WATCH|VX_ADMIN|VX_HOSTID|VX_IDENT))
                goto hidden;
        if (inode->i_sb->s_magic == PROC_SUPER_MAGIC) {
@@ -818,7 +819,7 @@ static int do_lookup(struct nameidata *nd, struct qstr *name,
                if (de && !vx_hide_check(0, de->vx_flags))
                        goto hidden;
        }
-done:
+no_inode:
        path->mnt = mnt;
        path->dentry = dentry;
        __follow_mount(path);