--- ./fs/nfs/dir.c.orig 2005-02-07 23:05:05.000000000 +0100 +++ ./fs/nfs/dir.c 2005-02-07 23:06:39.000000000 +0100 @@ -1508,6 +1508,8 @@ cache.cred = cred; cache.jiffies = jiffies; status = NFS_PROTO(inode)->access(inode, &cache); + dfprintk(VFS, "NFS: access()=%d for ino %lu, cred %p, mask 0x%x->0x%x\n", + status, inode->i_ino, cred, mask, cache.mask); if (status != 0) return status; nfs_access_add_cache(inode, &cache); @@ -1521,6 +1523,7 @@ { struct rpc_cred *cred; int res; + struct rpc_groups fsg = { 1, { inode->i_gid } }; if (mask == 0) return 0; @@ -1540,7 +1543,7 @@ if (!NFS_PROTO(inode)->access) goto out_notsup; - cred = rpcauth_lookupcred(NFS_CLIENT(inode)->cl_auth, NULL, 0); + cred = rpcauth_lookupcred(NFS_CLIENT(inode)->cl_auth, &fsg, 0); res = nfs_do_access(inode, cred, mask); put_rpccred(cred); unlock_kernel();