[OpenAFS-port-darwin] Prereleases and CVS problems

Chaskiel M Grundman cg2v@andrew.cmu.edu
Thu, 17 Nov 2005 14:57:36 -0500


The following patch appears to correct this problem. It has to do with 
identifying which rights are required to stat directories.

I will try and get this patch incorporated into the 1.4.1rc2 release.


RCS file: /cvs/openafs/src/afs/DARWIN/osi_vnodeops.c,v
retrieving revision 1.18.2.5
diff -u -d -r1.18.2.5 osi_vnodeops.c
--- src/afs/DARWIN/osi_vnodeops.c       5 Oct 2005 05:58:29 -0000 
1.18.2.5
+++ src/afs/DARWIN/osi_vnodeops.c       17 Nov 2005 19:55:21 -0000
@@ -574,6 +574,10 @@
           bits |= PRSFS_INSERT;
        if (ap->a_action & KAUTH_VNODE_DELETE_CHILD)
           bits |= PRSFS_DELETE;
+       if (ap->a_action & KAUTH_VNODE_READ_ATTRIBUTES)
+          bits |= PRSFS_LOOKUP;
+       if (ap->a_action & KAUTH_VNODE_READ_SECURITY) /* mode bits/gid, not 
afs acl */
+          bits |= PRSFS_LOOKUP;
     } else {
        if (ap->a_action & KAUTH_VNODE_READ_DATA)
           bits |= PRSFS_READ;
@@ -581,9 +585,11 @@
           bits |= PRSFS_WRITE;
        if (ap->a_action & KAUTH_VNODE_EXECUTE)
           bits |= PRSFS_READ; /* and mode bits.... */
+       if (ap->a_action & KAUTH_VNODE_READ_ATTRIBUTES)
+          bits |= PRSFS_READ;
+       if (ap->a_action & KAUTH_VNODE_READ_SECURITY) /* mode bits/gid, not 
afs acl */
+          bits |= PRSFS_READ;
     }
-    if (ap->a_action & KAUTH_VNODE_READ_ATTRIBUTES)
-       bits |= PRSFS_READ;
     if (ap->a_action & KAUTH_VNODE_WRITE_ATTRIBUTES)
        bits |= PRSFS_WRITE;
 #if 0 /* no extended attributes */
@@ -592,8 +598,6 @@
     if (ap->a_action & KAUTH_VNODE_WRITE_EXTATTRIBUTES)
        bits |= PRSFS_WRITE;
 #endif
-    if (ap->a_action & KAUTH_VNODE_READ_SECURITY) /* mode bits/gid, not 
afs acl */
-       bits |= PRSFS_READ;
     if (ap->a_action & KAUTH_VNODE_WRITE_SECURITY)
        bits |= PRSFS_WRITE;
     /* we can't check for KAUTH_VNODE_TAKE_OWNERSHIP, so we always permit 
it */