aboutsummaryrefslogtreecommitdiffstats
path: root/net/sunrpc
diff options
context:
space:
mode:
Diffstat (limited to 'net/sunrpc')
-rw-r--r--net/sunrpc/cache.c9
-rw-r--r--net/sunrpc/stats.c3
-rw-r--r--net/sunrpc/sunrpc_syms.c41
-rw-r--r--net/sunrpc/svc.c7
-rw-r--r--net/sunrpc/svc_xprt.c4
-rw-r--r--net/sunrpc/svcauth.c6
-rw-r--r--net/sunrpc/svcauth_unix.c5
7 files changed, 33 insertions, 42 deletions
diff --git a/net/sunrpc/cache.c b/net/sunrpc/cache.c
index 50b1a8b441fe..636c8e04e0be 100644
--- a/net/sunrpc/cache.c
+++ b/net/sunrpc/cache.c
@@ -245,6 +245,7 @@ int cache_check(struct cache_detail *detail,
245 cache_put(h, detail); 245 cache_put(h, detail);
246 return rv; 246 return rv;
247} 247}
248EXPORT_SYMBOL(cache_check);
248 249
249/* 250/*
250 * caches need to be periodically cleaned. 251 * caches need to be periodically cleaned.
@@ -377,6 +378,7 @@ int cache_register(struct cache_detail *cd)
377 schedule_delayed_work(&cache_cleaner, 0); 378 schedule_delayed_work(&cache_cleaner, 0);
378 return 0; 379 return 0;
379} 380}
381EXPORT_SYMBOL(cache_register);
380 382
381void cache_unregister(struct cache_detail *cd) 383void cache_unregister(struct cache_detail *cd)
382{ 384{
@@ -402,6 +404,7 @@ void cache_unregister(struct cache_detail *cd)
402out: 404out:
403 printk(KERN_ERR "nfsd: failed to unregister %s cache\n", cd->name); 405 printk(KERN_ERR "nfsd: failed to unregister %s cache\n", cd->name);
404} 406}
407EXPORT_SYMBOL(cache_unregister);
405 408
406/* clean cache tries to find something to clean 409/* clean cache tries to find something to clean
407 * and cleans it. 410 * and cleans it.
@@ -516,6 +519,7 @@ void cache_flush(void)
516 while (cache_clean() != -1) 519 while (cache_clean() != -1)
517 cond_resched(); 520 cond_resched();
518} 521}
522EXPORT_SYMBOL(cache_flush);
519 523
520void cache_purge(struct cache_detail *detail) 524void cache_purge(struct cache_detail *detail)
521{ 525{
@@ -524,7 +528,7 @@ void cache_purge(struct cache_detail *detail)
524 cache_flush(); 528 cache_flush();
525 detail->flush_time = 1; 529 detail->flush_time = 1;
526} 530}
527 531EXPORT_SYMBOL(cache_purge);
528 532
529 533
530/* 534/*
@@ -990,6 +994,7 @@ void qword_add(char **bpp, int *lp, char *str)
990 *bpp = bp; 994 *bpp = bp;
991 *lp = len; 995 *lp = len;
992} 996}
997EXPORT_SYMBOL(qword_add);
993 998
994void qword_addhex(char **bpp, int *lp, char *buf, int blen) 999void qword_addhex(char **bpp, int *lp, char *buf, int blen)
995{ 1000{
@@ -1018,6 +1023,7 @@ void qword_addhex(char **bpp, int *lp, char *buf, int blen)
1018 *bpp = bp; 1023 *bpp = bp;
1019 *lp = len; 1024 *lp = len;
1020} 1025}
1026EXPORT_SYMBOL(qword_addhex);
1021 1027
1022static void warn_no_listener(struct cache_detail *detail) 1028static void warn_no_listener(struct cache_detail *detail)
1023{ 1029{
@@ -1140,6 +1146,7 @@ int qword_get(char **bpp, char *dest, int bufsize)
1140 *dest = '\0'; 1146 *dest = '\0';
1141 return len; 1147 return len;
1142} 1148}
1149EXPORT_SYMBOL(qword_get);
1143 1150
1144 1151
1145/* 1152/*
diff --git a/net/sunrpc/stats.c b/net/sunrpc/stats.c
index 74df2d358e61..be0d1009e593 100644
--- a/net/sunrpc/stats.c
+++ b/net/sunrpc/stats.c
@@ -106,6 +106,7 @@ void svc_seq_show(struct seq_file *seq, const struct svc_stat *statp) {
106 seq_putc(seq, '\n'); 106 seq_putc(seq, '\n');
107 } 107 }
108} 108}
109EXPORT_SYMBOL(svc_seq_show);
109 110
110/** 111/**
111 * rpc_alloc_iostats - allocate an rpc_iostats structure 112 * rpc_alloc_iostats - allocate an rpc_iostats structure
@@ -255,12 +256,14 @@ svc_proc_register(struct svc_stat *statp, const struct file_operations *fops)
255{ 256{
256 return do_register(statp->program->pg_name, statp, fops); 257 return do_register(statp->program->pg_name, statp, fops);
257} 258}
259EXPORT_SYMBOL(svc_proc_register);
258 260
259void 261void
260svc_proc_unregister(const char *name) 262svc_proc_unregister(const char *name)
261{ 263{
262 remove_proc_entry(name, proc_net_rpc); 264 remove_proc_entry(name, proc_net_rpc);
263} 265}
266EXPORT_SYMBOL(svc_proc_unregister);
264 267
265void 268void
266rpc_proc_init(void) 269rpc_proc_init(void)
diff --git a/net/sunrpc/sunrpc_syms.c b/net/sunrpc/sunrpc_syms.c
index ab8a7362e890..843629f55763 100644
--- a/net/sunrpc/sunrpc_syms.c
+++ b/net/sunrpc/sunrpc_syms.c
@@ -22,47 +22,6 @@
22#include <linux/sunrpc/rpc_pipe_fs.h> 22#include <linux/sunrpc/rpc_pipe_fs.h>
23#include <linux/sunrpc/xprtsock.h> 23#include <linux/sunrpc/xprtsock.h>
24 24
25/* RPC server stuff */
26EXPORT_SYMBOL(svc_create);
27EXPORT_SYMBOL(svc_create_thread);
28EXPORT_SYMBOL(svc_create_pooled);
29EXPORT_SYMBOL(svc_set_num_threads);
30EXPORT_SYMBOL(svc_exit_thread);
31EXPORT_SYMBOL(svc_destroy);
32EXPORT_SYMBOL(svc_drop);
33EXPORT_SYMBOL(svc_process);
34EXPORT_SYMBOL(svc_recv);
35EXPORT_SYMBOL(svc_wake_up);
36EXPORT_SYMBOL(svc_reserve);
37EXPORT_SYMBOL(svc_auth_register);
38EXPORT_SYMBOL(auth_domain_lookup);
39EXPORT_SYMBOL(svc_authenticate);
40EXPORT_SYMBOL(svc_set_client);
41
42/* RPC statistics */
43#ifdef CONFIG_PROC_FS
44EXPORT_SYMBOL(svc_proc_register);
45EXPORT_SYMBOL(svc_proc_unregister);
46EXPORT_SYMBOL(svc_seq_show);
47#endif
48
49/* caching... */
50EXPORT_SYMBOL(auth_domain_find);
51EXPORT_SYMBOL(auth_domain_put);
52EXPORT_SYMBOL(auth_unix_add_addr);
53EXPORT_SYMBOL(auth_unix_forget_old);
54EXPORT_SYMBOL(auth_unix_lookup);
55EXPORT_SYMBOL(cache_check);
56EXPORT_SYMBOL(cache_flush);
57EXPORT_SYMBOL(cache_purge);
58EXPORT_SYMBOL(cache_register);
59EXPORT_SYMBOL(cache_unregister);
60EXPORT_SYMBOL(qword_add);
61EXPORT_SYMBOL(qword_addhex);
62EXPORT_SYMBOL(qword_get);
63EXPORT_SYMBOL(svcauth_unix_purge);
64EXPORT_SYMBOL(unix_domain_find);
65
66extern struct cache_detail ip_map_cache, unix_gid_cache; 25extern struct cache_detail ip_map_cache, unix_gid_cache;
67 26
68static int __init 27static int __init
diff --git a/net/sunrpc/svc.c b/net/sunrpc/svc.c
index b76963d52657..7537af7c4a76 100644
--- a/net/sunrpc/svc.c
+++ b/net/sunrpc/svc.c
@@ -433,6 +433,7 @@ svc_create(struct svc_program *prog, unsigned int bufsize,
433{ 433{
434 return __svc_create(prog, bufsize, /*npools*/1, shutdown); 434 return __svc_create(prog, bufsize, /*npools*/1, shutdown);
435} 435}
436EXPORT_SYMBOL(svc_create);
436 437
437struct svc_serv * 438struct svc_serv *
438svc_create_pooled(struct svc_program *prog, unsigned int bufsize, 439svc_create_pooled(struct svc_program *prog, unsigned int bufsize,
@@ -452,6 +453,7 @@ svc_create_pooled(struct svc_program *prog, unsigned int bufsize,
452 453
453 return serv; 454 return serv;
454} 455}
456EXPORT_SYMBOL(svc_create_pooled);
455 457
456/* 458/*
457 * Destroy an RPC service. Should be called with the BKL held 459 * Destroy an RPC service. Should be called with the BKL held
@@ -493,6 +495,7 @@ svc_destroy(struct svc_serv *serv)
493 kfree(serv->sv_pools); 495 kfree(serv->sv_pools);
494 kfree(serv); 496 kfree(serv);
495} 497}
498EXPORT_SYMBOL(svc_destroy);
496 499
497/* 500/*
498 * Allocate an RPC server's buffer space. 501 * Allocate an RPC server's buffer space.
@@ -617,6 +620,7 @@ svc_create_thread(svc_thread_fn func, struct svc_serv *serv)
617{ 620{
618 return __svc_create_thread(func, serv, &serv->sv_pools[0]); 621 return __svc_create_thread(func, serv, &serv->sv_pools[0]);
619} 622}
623EXPORT_SYMBOL(svc_create_thread);
620 624
621/* 625/*
622 * Choose a pool in which to create a new thread, for svc_set_num_threads 626 * Choose a pool in which to create a new thread, for svc_set_num_threads
@@ -720,6 +724,7 @@ svc_set_num_threads(struct svc_serv *serv, struct svc_pool *pool, int nrservs)
720 724
721 return error; 725 return error;
722} 726}
727EXPORT_SYMBOL(svc_set_num_threads);
723 728
724/* 729/*
725 * Called from a server thread as it's exiting. Caller must hold BKL. 730 * Called from a server thread as it's exiting. Caller must hold BKL.
@@ -746,6 +751,7 @@ svc_exit_thread(struct svc_rqst *rqstp)
746 if (serv) 751 if (serv)
747 svc_destroy(serv); 752 svc_destroy(serv);
748} 753}
754EXPORT_SYMBOL(svc_exit_thread);
749 755
750/* 756/*
751 * Register an RPC service with the local portmapper. 757 * Register an RPC service with the local portmapper.
@@ -1069,6 +1075,7 @@ err_bad:
1069 svc_putnl(resv, ntohl(rpc_stat)); 1075 svc_putnl(resv, ntohl(rpc_stat));
1070 goto sendit; 1076 goto sendit;
1071} 1077}
1078EXPORT_SYMBOL(svc_process);
1072 1079
1073/* 1080/*
1074 * Return (transport-specific) limit on the rpc payload. 1081 * Return (transport-specific) limit on the rpc payload.
diff --git a/net/sunrpc/svc_xprt.c b/net/sunrpc/svc_xprt.c
index c3fb36784f3b..ea377e06afae 100644
--- a/net/sunrpc/svc_xprt.c
+++ b/net/sunrpc/svc_xprt.c
@@ -435,6 +435,7 @@ void svc_reserve(struct svc_rqst *rqstp, int space)
435 svc_xprt_enqueue(xprt); 435 svc_xprt_enqueue(xprt);
436 } 436 }
437} 437}
438EXPORT_SYMBOL(svc_reserve);
438 439
439static void svc_xprt_release(struct svc_rqst *rqstp) 440static void svc_xprt_release(struct svc_rqst *rqstp)
440{ 441{
@@ -492,6 +493,7 @@ void svc_wake_up(struct svc_serv *serv)
492 spin_unlock_bh(&pool->sp_lock); 493 spin_unlock_bh(&pool->sp_lock);
493 } 494 }
494} 495}
496EXPORT_SYMBOL(svc_wake_up);
495 497
496int svc_port_is_privileged(struct sockaddr *sin) 498int svc_port_is_privileged(struct sockaddr *sin)
497{ 499{
@@ -702,6 +704,7 @@ int svc_recv(struct svc_rqst *rqstp, long timeout)
702 serv->sv_stats->netcnt++; 704 serv->sv_stats->netcnt++;
703 return len; 705 return len;
704} 706}
707EXPORT_SYMBOL(svc_recv);
705 708
706/* 709/*
707 * Drop request 710 * Drop request
@@ -711,6 +714,7 @@ void svc_drop(struct svc_rqst *rqstp)
711 dprintk("svc: xprt %p dropped request\n", rqstp->rq_xprt); 714 dprintk("svc: xprt %p dropped request\n", rqstp->rq_xprt);
712 svc_xprt_release(rqstp); 715 svc_xprt_release(rqstp);
713} 716}
717EXPORT_SYMBOL(svc_drop);
714 718
715/* 719/*
716 * Return reply to client. 720 * Return reply to client.
diff --git a/net/sunrpc/svcauth.c b/net/sunrpc/svcauth.c
index af7c5f05c6e1..8a73cbb16052 100644
--- a/net/sunrpc/svcauth.c
+++ b/net/sunrpc/svcauth.c
@@ -57,11 +57,13 @@ svc_authenticate(struct svc_rqst *rqstp, __be32 *authp)
57 rqstp->rq_authop = aops; 57 rqstp->rq_authop = aops;
58 return aops->accept(rqstp, authp); 58 return aops->accept(rqstp, authp);
59} 59}
60EXPORT_SYMBOL(svc_authenticate);
60 61
61int svc_set_client(struct svc_rqst *rqstp) 62int svc_set_client(struct svc_rqst *rqstp)
62{ 63{
63 return rqstp->rq_authop->set_client(rqstp); 64 return rqstp->rq_authop->set_client(rqstp);
64} 65}
66EXPORT_SYMBOL(svc_set_client);
65 67
66/* A request, which was authenticated, has now executed. 68/* A request, which was authenticated, has now executed.
67 * Time to finalise the credentials and verifier 69 * Time to finalise the credentials and verifier
@@ -93,6 +95,7 @@ svc_auth_register(rpc_authflavor_t flavor, struct auth_ops *aops)
93 spin_unlock(&authtab_lock); 95 spin_unlock(&authtab_lock);
94 return rv; 96 return rv;
95} 97}
98EXPORT_SYMBOL(svc_auth_register);
96 99
97void 100void
98svc_auth_unregister(rpc_authflavor_t flavor) 101svc_auth_unregister(rpc_authflavor_t flavor)
@@ -129,6 +132,7 @@ void auth_domain_put(struct auth_domain *dom)
129 spin_unlock(&auth_domain_lock); 132 spin_unlock(&auth_domain_lock);
130 } 133 }
131} 134}
135EXPORT_SYMBOL(auth_domain_put);
132 136
133struct auth_domain * 137struct auth_domain *
134auth_domain_lookup(char *name, struct auth_domain *new) 138auth_domain_lookup(char *name, struct auth_domain *new)
@@ -153,8 +157,10 @@ auth_domain_lookup(char *name, struct auth_domain *new)
153 spin_unlock(&auth_domain_lock); 157 spin_unlock(&auth_domain_lock);
154 return new; 158 return new;
155} 159}
160EXPORT_SYMBOL(auth_domain_lookup);
156 161
157struct auth_domain *auth_domain_find(char *name) 162struct auth_domain *auth_domain_find(char *name)
158{ 163{
159 return auth_domain_lookup(name, NULL); 164 return auth_domain_lookup(name, NULL);
160} 165}
166EXPORT_SYMBOL(auth_domain_find);
diff --git a/net/sunrpc/svcauth_unix.c b/net/sunrpc/svcauth_unix.c
index 6815157bd65c..3c64051e4555 100644
--- a/net/sunrpc/svcauth_unix.c
+++ b/net/sunrpc/svcauth_unix.c
@@ -63,6 +63,7 @@ struct auth_domain *unix_domain_find(char *name)
63 rv = auth_domain_lookup(name, &new->h); 63 rv = auth_domain_lookup(name, &new->h);
64 } 64 }
65} 65}
66EXPORT_SYMBOL(unix_domain_find);
66 67
67static void svcauth_unix_domain_release(struct auth_domain *dom) 68static void svcauth_unix_domain_release(struct auth_domain *dom)
68{ 69{
@@ -340,6 +341,7 @@ int auth_unix_add_addr(struct in_addr addr, struct auth_domain *dom)
340 else 341 else
341 return -ENOMEM; 342 return -ENOMEM;
342} 343}
344EXPORT_SYMBOL(auth_unix_add_addr);
343 345
344int auth_unix_forget_old(struct auth_domain *dom) 346int auth_unix_forget_old(struct auth_domain *dom)
345{ 347{
@@ -351,6 +353,7 @@ int auth_unix_forget_old(struct auth_domain *dom)
351 udom->addr_changes++; 353 udom->addr_changes++;
352 return 0; 354 return 0;
353} 355}
356EXPORT_SYMBOL(auth_unix_forget_old);
354 357
355struct auth_domain *auth_unix_lookup(struct in_addr addr) 358struct auth_domain *auth_unix_lookup(struct in_addr addr)
356{ 359{
@@ -375,11 +378,13 @@ struct auth_domain *auth_unix_lookup(struct in_addr addr)
375 cache_put(&ipm->h, &ip_map_cache); 378 cache_put(&ipm->h, &ip_map_cache);
376 return rv; 379 return rv;
377} 380}
381EXPORT_SYMBOL(auth_unix_lookup);
378 382
379void svcauth_unix_purge(void) 383void svcauth_unix_purge(void)
380{ 384{
381 cache_purge(&ip_map_cache); 385 cache_purge(&ip_map_cache);
382} 386}
387EXPORT_SYMBOL(svcauth_unix_purge);
383 388
384static inline struct ip_map * 389static inline struct ip_map *
385ip_map_cached_get(struct svc_rqst *rqstp) 390ip_map_cached_get(struct svc_rqst *rqstp)