diff options
-rw-r--r-- | net/sunrpc/cache.c | 9 | ||||
-rw-r--r-- | net/sunrpc/stats.c | 3 | ||||
-rw-r--r-- | net/sunrpc/sunrpc_syms.c | 41 | ||||
-rw-r--r-- | net/sunrpc/svc.c | 7 | ||||
-rw-r--r-- | net/sunrpc/svc_xprt.c | 4 | ||||
-rw-r--r-- | net/sunrpc/svcauth.c | 6 | ||||
-rw-r--r-- | net/sunrpc/svcauth_unix.c | 5 |
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 | } |
248 | EXPORT_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 | } |
381 | EXPORT_SYMBOL(cache_register); | ||
380 | 382 | ||
381 | void cache_unregister(struct cache_detail *cd) | 383 | void cache_unregister(struct cache_detail *cd) |
382 | { | 384 | { |
@@ -402,6 +404,7 @@ void cache_unregister(struct cache_detail *cd) | |||
402 | out: | 404 | out: |
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 | } |
407 | EXPORT_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 | } |
522 | EXPORT_SYMBOL(cache_flush); | ||
519 | 523 | ||
520 | void cache_purge(struct cache_detail *detail) | 524 | void 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 | 531 | EXPORT_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 | } |
997 | EXPORT_SYMBOL(qword_add); | ||
993 | 998 | ||
994 | void qword_addhex(char **bpp, int *lp, char *buf, int blen) | 999 | void 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 | } |
1026 | EXPORT_SYMBOL(qword_addhex); | ||
1021 | 1027 | ||
1022 | static void warn_no_listener(struct cache_detail *detail) | 1028 | static 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 | } |
1149 | EXPORT_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 | } |
109 | EXPORT_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 | } |
259 | EXPORT_SYMBOL(svc_proc_register); | ||
258 | 260 | ||
259 | void | 261 | void |
260 | svc_proc_unregister(const char *name) | 262 | svc_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 | } |
266 | EXPORT_SYMBOL(svc_proc_unregister); | ||
264 | 267 | ||
265 | void | 268 | void |
266 | rpc_proc_init(void) | 269 | rpc_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 */ | ||
26 | EXPORT_SYMBOL(svc_create); | ||
27 | EXPORT_SYMBOL(svc_create_thread); | ||
28 | EXPORT_SYMBOL(svc_create_pooled); | ||
29 | EXPORT_SYMBOL(svc_set_num_threads); | ||
30 | EXPORT_SYMBOL(svc_exit_thread); | ||
31 | EXPORT_SYMBOL(svc_destroy); | ||
32 | EXPORT_SYMBOL(svc_drop); | ||
33 | EXPORT_SYMBOL(svc_process); | ||
34 | EXPORT_SYMBOL(svc_recv); | ||
35 | EXPORT_SYMBOL(svc_wake_up); | ||
36 | EXPORT_SYMBOL(svc_reserve); | ||
37 | EXPORT_SYMBOL(svc_auth_register); | ||
38 | EXPORT_SYMBOL(auth_domain_lookup); | ||
39 | EXPORT_SYMBOL(svc_authenticate); | ||
40 | EXPORT_SYMBOL(svc_set_client); | ||
41 | |||
42 | /* RPC statistics */ | ||
43 | #ifdef CONFIG_PROC_FS | ||
44 | EXPORT_SYMBOL(svc_proc_register); | ||
45 | EXPORT_SYMBOL(svc_proc_unregister); | ||
46 | EXPORT_SYMBOL(svc_seq_show); | ||
47 | #endif | ||
48 | |||
49 | /* caching... */ | ||
50 | EXPORT_SYMBOL(auth_domain_find); | ||
51 | EXPORT_SYMBOL(auth_domain_put); | ||
52 | EXPORT_SYMBOL(auth_unix_add_addr); | ||
53 | EXPORT_SYMBOL(auth_unix_forget_old); | ||
54 | EXPORT_SYMBOL(auth_unix_lookup); | ||
55 | EXPORT_SYMBOL(cache_check); | ||
56 | EXPORT_SYMBOL(cache_flush); | ||
57 | EXPORT_SYMBOL(cache_purge); | ||
58 | EXPORT_SYMBOL(cache_register); | ||
59 | EXPORT_SYMBOL(cache_unregister); | ||
60 | EXPORT_SYMBOL(qword_add); | ||
61 | EXPORT_SYMBOL(qword_addhex); | ||
62 | EXPORT_SYMBOL(qword_get); | ||
63 | EXPORT_SYMBOL(svcauth_unix_purge); | ||
64 | EXPORT_SYMBOL(unix_domain_find); | ||
65 | |||
66 | extern struct cache_detail ip_map_cache, unix_gid_cache; | 25 | extern struct cache_detail ip_map_cache, unix_gid_cache; |
67 | 26 | ||
68 | static int __init | 27 | static 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 | } |
436 | EXPORT_SYMBOL(svc_create); | ||
436 | 437 | ||
437 | struct svc_serv * | 438 | struct svc_serv * |
438 | svc_create_pooled(struct svc_program *prog, unsigned int bufsize, | 439 | svc_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 | } |
456 | EXPORT_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 | } |
498 | EXPORT_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 | } |
623 | EXPORT_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 | } |
727 | EXPORT_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 | } |
754 | EXPORT_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 | } |
1078 | EXPORT_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 | } |
438 | EXPORT_SYMBOL(svc_reserve); | ||
438 | 439 | ||
439 | static void svc_xprt_release(struct svc_rqst *rqstp) | 440 | static 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 | } |
496 | EXPORT_SYMBOL(svc_wake_up); | ||
495 | 497 | ||
496 | int svc_port_is_privileged(struct sockaddr *sin) | 498 | int 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 | } |
707 | EXPORT_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 | } |
717 | EXPORT_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 | } |
60 | EXPORT_SYMBOL(svc_authenticate); | ||
60 | 61 | ||
61 | int svc_set_client(struct svc_rqst *rqstp) | 62 | int 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 | } |
66 | EXPORT_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 | } |
98 | EXPORT_SYMBOL(svc_auth_register); | ||
96 | 99 | ||
97 | void | 100 | void |
98 | svc_auth_unregister(rpc_authflavor_t flavor) | 101 | svc_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 | } |
135 | EXPORT_SYMBOL(auth_domain_put); | ||
132 | 136 | ||
133 | struct auth_domain * | 137 | struct auth_domain * |
134 | auth_domain_lookup(char *name, struct auth_domain *new) | 138 | auth_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 | } |
160 | EXPORT_SYMBOL(auth_domain_lookup); | ||
156 | 161 | ||
157 | struct auth_domain *auth_domain_find(char *name) | 162 | struct 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 | } |
166 | EXPORT_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 | } |
66 | EXPORT_SYMBOL(unix_domain_find); | ||
66 | 67 | ||
67 | static void svcauth_unix_domain_release(struct auth_domain *dom) | 68 | static 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 | } |
344 | EXPORT_SYMBOL(auth_unix_add_addr); | ||
343 | 345 | ||
344 | int auth_unix_forget_old(struct auth_domain *dom) | 346 | int 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 | } |
356 | EXPORT_SYMBOL(auth_unix_forget_old); | ||
354 | 357 | ||
355 | struct auth_domain *auth_unix_lookup(struct in_addr addr) | 358 | struct 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 | } |
381 | EXPORT_SYMBOL(auth_unix_lookup); | ||
378 | 382 | ||
379 | void svcauth_unix_purge(void) | 383 | void svcauth_unix_purge(void) |
380 | { | 384 | { |
381 | cache_purge(&ip_map_cache); | 385 | cache_purge(&ip_map_cache); |
382 | } | 386 | } |
387 | EXPORT_SYMBOL(svcauth_unix_purge); | ||
383 | 388 | ||
384 | static inline struct ip_map * | 389 | static inline struct ip_map * |
385 | ip_map_cached_get(struct svc_rqst *rqstp) | 390 | ip_map_cached_get(struct svc_rqst *rqstp) |