]> CyberLeo.Net >> Repos - FreeBSD/stable/10.git/commit
MFC: r291527
authorrmacklem <rmacklem@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Mon, 14 Dec 2015 21:21:43 +0000 (21:21 +0000)
committerrmacklem <rmacklem@ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f>
Mon, 14 Dec 2015 21:21:43 +0000 (21:21 +0000)
commita68f11936f9784f5b63a4ce964c1ec350ebea75c
tree0468732e2f524481c1f7dbe83b520879f840f410
parent7c298e46200aa73e484391807974502fd6d2dfed
MFC: r291527
Add kernel support to the NFS server for the "-manage-gids"
option that will be added to the nfsuserd daemon in a future
commit. It modifies the cache used by NFSv4 for name<-->id
translation (both username/uid and group/gid) to support this.
When "-manage-gids" is set, the server looks up each uid
for the RPC and uses the list of groups cached in the server
instead of the list of groups provided in the RPC request.
The cached group list is acquired for the cache by the nfsuserd
daemon via getgrouplist(3).
This avoids the 16 groups limit for the list in the RPC request.
Since the cache is now used for every RPC when "-manage-gids"
is enabled, the code also modifies the cache to use a separate
mutex for each hash list instead of a single global mutex.

git-svn-id: svn://svn.freebsd.org/base/stable/10@292223 ccf9f872-aa2e-dd11-9fc8-001c23d0bc1f
sys/fs/nfs/nfs.h
sys/fs/nfs/nfs_commonport.c
sys/fs/nfs/nfs_commonsubs.c
sys/fs/nfs/nfs_var.h
sys/fs/nfs/nfsrvstate.h
sys/fs/nfsserver/nfs_nfsdport.c
sys/nfs/nfssvc.h