aboutsummaryrefslogtreecommitdiffstats
path: root/net/sunrpc/sunrpc_syms.c
diff options
context:
space:
mode:
authorNeilBrown <neilb@suse.de>2007-02-14 03:33:13 -0500
committerLinus Torvalds <torvalds@woody.linux-foundation.org>2007-02-14 11:09:53 -0500
commit3fc605a2aa38899c12180ca311f1eeb61a6d867e (patch)
tree4a75b90cc8cffca4661642360cbec42a424bf9cf /net/sunrpc/sunrpc_syms.c
parentaf6a4e280e3ff453653f39190b57b345ff0bec16 (diff)
[PATCH] knfsd: allow the server to provide a gid list when using AUTH_UNIX authentication
AUTH_UNIX authentication (the standard with NFS) has a limit of 16 groups ids. This causes problems for people in more than 16 groups. So allow the server to map a uid into a list of group ids based on local knowledge rather depending on the (possibly truncated) list from the client. If there is no process on the server responding to upcalls, the gidlist in the request will still be used. Signed-off-by: Neil Brown <neilb@suse.de> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'net/sunrpc/sunrpc_syms.c')
-rw-r--r--net/sunrpc/sunrpc_syms.c5
1 files changed, 4 insertions, 1 deletions
diff --git a/net/sunrpc/sunrpc_syms.c b/net/sunrpc/sunrpc_syms.c
index d85fddeb6388..d3865265fc18 100644
--- a/net/sunrpc/sunrpc_syms.c
+++ b/net/sunrpc/sunrpc_syms.c
@@ -137,7 +137,7 @@ EXPORT_SYMBOL(nlm_debug);
137 137
138extern int register_rpc_pipefs(void); 138extern int register_rpc_pipefs(void);
139extern void unregister_rpc_pipefs(void); 139extern void unregister_rpc_pipefs(void);
140extern struct cache_detail ip_map_cache; 140extern struct cache_detail ip_map_cache, unix_gid_cache;
141extern int init_socket_xprt(void); 141extern int init_socket_xprt(void);
142extern void cleanup_socket_xprt(void); 142extern void cleanup_socket_xprt(void);
143 143
@@ -157,6 +157,7 @@ init_sunrpc(void)
157 rpc_proc_init(); 157 rpc_proc_init();
158#endif 158#endif
159 cache_register(&ip_map_cache); 159 cache_register(&ip_map_cache);
160 cache_register(&unix_gid_cache);
160 init_socket_xprt(); 161 init_socket_xprt();
161out: 162out:
162 return err; 163 return err;
@@ -170,6 +171,8 @@ cleanup_sunrpc(void)
170 rpc_destroy_mempool(); 171 rpc_destroy_mempool();
171 if (cache_unregister(&ip_map_cache)) 172 if (cache_unregister(&ip_map_cache))
172 printk(KERN_ERR "sunrpc: failed to unregister ip_map cache\n"); 173 printk(KERN_ERR "sunrpc: failed to unregister ip_map cache\n");
174 if (cache_unregister(&unix_gid_cache))
175 printk(KERN_ERR "sunrpc: failed to unregister unix_gid cache\n");
173#ifdef RPC_DEBUG 176#ifdef RPC_DEBUG
174 rpc_unregister_sysctl(); 177 rpc_unregister_sysctl();
175#endif 178#endif