Summary: remove the 16 groups limit in the NFS client This directory contains the many-groups patch split into separate parts. Patch 41, 45 and 50 change behavior already because the code path does not go through the nfs?_proc_ functions. That's why there is a test on the NFS version there as well: prevent any effects on NFSv4 (it wouldn't harm because the situation for AUTH_UNIX is broken anyway when the change would matter but I just don't want it right now). Patch 70 concludes the series, enabling the feature for all other cases. Anything >70 are bugfixes and trivia. NFSv4 is unaffected. Patch summary: 01 sunrpc cleanup, introduction of RPC_MAXGROUPS (16) 26 simplify rpcauth credential code: eliminate bind, unbind and hold operations. 27 comment fixes. 28 proc.c: implement our own rpc_call(), prepare for future rpcauth_lookupcred() calls. 29 nfs3proc.c contains function style macro definitions hiding real functions: rpc_call() and rpc_call_sync(). This gets in the ways when the rpc_cred member initialization must be moved upwards: - replace rpc_call() -> nfs3_rpc_call_wrapper() -> nfs3_rpc_wrapper() call tree by a call to a new local function named nfs3_rpc() for doing the EJUKEBOX stuff. - replace rpc_call_sync() macro calls by nfs3_rpc() calls mailed to Trond. 30 Introduction of rpc_ngroups. move groupinfo stuff down into new unx_add_groups(), the cr_add_groups vector in rpc_authops for AUTH_UNIX. Callers of rpcauth_lookupcred() don't use the new feature yet so no behavioral change. 40 add rpcauth_lookupcred() calls to nfs2_rpc() and nfs3_rpc(). Disable the new feature for all nfsx_rpc() callers for now. 41 nfs_open (open, opendir). We test for the NFS version to avoid any feature leaking into the NFSv4 code. 42 nfs_create 43 nfs_lookup/nfs_mkdir/nfs_mknod (touches nfs_symlink via nfs_instantiate) 44 nfs_link 45 nfs_unlink/nfs_rmdir (remove, rmdir). Again a NFS version test to avoid affecting NFSv4 46 nfs_symlink 49 nfs_rename 50 nfs_permission (access) + dfprintk() reporting nfsx_proc_access result. Again a NFS version test to avoid affecting NFSv4. 51 nfs_setattr 70 Enable the new code for NFSv2 and NFSv3, adding NULL rpc_groups argument to all operations which don't need group info: NFSPROC_GETATTR NFSPROC_READLINK NFSPROC_STATFS NFS3PROC_FSINFO NFS3PROC_FSSTAT NFS3PROC_GETATTR NFS3PROC_PATHCONF NFS3PROC_READLINK TODO: - The cr_add_groups vector should be folded somehow into the (new in 2.6.12) lookup_cred vector. The issue is merely a performance one: do we want 3 extra arguments? could it all be avoided by using `current->*' instead?