aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--net/sunrpc/auth.c8
-rw-r--r--net/sunrpc/clnt.c10
-rw-r--r--net/sunrpc/rpc_pipe.c3
-rw-r--r--net/sunrpc/sched.c9
-rw-r--r--net/sunrpc/stats.c2
-rw-r--r--net/sunrpc/sunrpc_syms.c66
-rw-r--r--net/sunrpc/sysctl.c7
-rw-r--r--net/sunrpc/xdr.c16
-rw-r--r--net/sunrpc/xprt.c1
9 files changed, 55 insertions, 67 deletions
diff --git a/net/sunrpc/auth.c b/net/sunrpc/auth.c
index 1ea27559b1de..1025a0ea9bb7 100644
--- a/net/sunrpc/auth.c
+++ b/net/sunrpc/auth.c
@@ -51,6 +51,7 @@ rpcauth_register(const struct rpc_authops *ops)
51 spin_unlock(&rpc_authflavor_lock); 51 spin_unlock(&rpc_authflavor_lock);
52 return ret; 52 return ret;
53} 53}
54EXPORT_SYMBOL(rpcauth_register);
54 55
55int 56int
56rpcauth_unregister(const struct rpc_authops *ops) 57rpcauth_unregister(const struct rpc_authops *ops)
@@ -68,6 +69,7 @@ rpcauth_unregister(const struct rpc_authops *ops)
68 spin_unlock(&rpc_authflavor_lock); 69 spin_unlock(&rpc_authflavor_lock);
69 return ret; 70 return ret;
70} 71}
72EXPORT_SYMBOL(rpcauth_unregister);
71 73
72struct rpc_auth * 74struct rpc_auth *
73rpcauth_create(rpc_authflavor_t pseudoflavor, struct rpc_clnt *clnt) 75rpcauth_create(rpc_authflavor_t pseudoflavor, struct rpc_clnt *clnt)
@@ -102,6 +104,7 @@ rpcauth_create(rpc_authflavor_t pseudoflavor, struct rpc_clnt *clnt)
102out: 104out:
103 return auth; 105 return auth;
104} 106}
107EXPORT_SYMBOL(rpcauth_create);
105 108
106void 109void
107rpcauth_release(struct rpc_auth *auth) 110rpcauth_release(struct rpc_auth *auth)
@@ -151,6 +154,7 @@ rpcauth_init_credcache(struct rpc_auth *auth)
151 auth->au_credcache = new; 154 auth->au_credcache = new;
152 return 0; 155 return 0;
153} 156}
157EXPORT_SYMBOL(rpcauth_init_credcache);
154 158
155/* 159/*
156 * Destroy a list of credentials 160 * Destroy a list of credentials
@@ -213,6 +217,7 @@ rpcauth_destroy_credcache(struct rpc_auth *auth)
213 kfree(cache); 217 kfree(cache);
214 } 218 }
215} 219}
220EXPORT_SYMBOL(rpcauth_destroy_credcache);
216 221
217/* 222/*
218 * Remove stale credentials. Avoid sleeping inside the loop. 223 * Remove stale credentials. Avoid sleeping inside the loop.
@@ -332,6 +337,7 @@ found:
332out: 337out:
333 return cred; 338 return cred;
334} 339}
340EXPORT_SYMBOL(rpcauth_lookup_credcache);
335 341
336struct rpc_cred * 342struct rpc_cred *
337rpcauth_lookupcred(struct rpc_auth *auth, int flags) 343rpcauth_lookupcred(struct rpc_auth *auth, int flags)
@@ -350,6 +356,7 @@ rpcauth_lookupcred(struct rpc_auth *auth, int flags)
350 put_group_info(acred.group_info); 356 put_group_info(acred.group_info);
351 return ret; 357 return ret;
352} 358}
359EXPORT_SYMBOL(rpcauth_lookupcred);
353 360
354void 361void
355rpcauth_init_cred(struct rpc_cred *cred, const struct auth_cred *acred, 362rpcauth_init_cred(struct rpc_cred *cred, const struct auth_cred *acred,
@@ -435,6 +442,7 @@ need_lock:
435out_destroy: 442out_destroy:
436 cred->cr_ops->crdestroy(cred); 443 cred->cr_ops->crdestroy(cred);
437} 444}
445EXPORT_SYMBOL(put_rpccred);
438 446
439void 447void
440rpcauth_unbindcred(struct rpc_task *task) 448rpcauth_unbindcred(struct rpc_task *task)
diff --git a/net/sunrpc/clnt.c b/net/sunrpc/clnt.c
index 046d8f68483b..5b561f9b6a17 100644
--- a/net/sunrpc/clnt.c
+++ b/net/sunrpc/clnt.c
@@ -345,6 +345,7 @@ out_no_clnt:
345 dprintk("RPC: %s: returned error %d\n", __FUNCTION__, err); 345 dprintk("RPC: %s: returned error %d\n", __FUNCTION__, err);
346 return ERR_PTR(err); 346 return ERR_PTR(err);
347} 347}
348EXPORT_SYMBOL(rpc_clone_client);
348 349
349/* 350/*
350 * Properly shut down an RPC client, terminating all outstanding 351 * Properly shut down an RPC client, terminating all outstanding
@@ -363,6 +364,7 @@ void rpc_shutdown_client(struct rpc_clnt *clnt)
363 364
364 rpc_release_client(clnt); 365 rpc_release_client(clnt);
365} 366}
367EXPORT_SYMBOL(rpc_shutdown_client);
366 368
367/* 369/*
368 * Free an RPC client 370 * Free an RPC client
@@ -467,6 +469,7 @@ struct rpc_clnt *rpc_bind_new_program(struct rpc_clnt *old,
467out: 469out:
468 return clnt; 470 return clnt;
469} 471}
472EXPORT_SYMBOL(rpc_bind_new_program);
470 473
471/* 474/*
472 * Default callback for async RPC calls 475 * Default callback for async RPC calls
@@ -512,11 +515,13 @@ void rpc_clnt_sigmask(struct rpc_clnt *clnt, sigset_t *oldset)
512{ 515{
513 rpc_save_sigmask(oldset, clnt->cl_intr); 516 rpc_save_sigmask(oldset, clnt->cl_intr);
514} 517}
518EXPORT_SYMBOL(rpc_clnt_sigmask);
515 519
516void rpc_clnt_sigunmask(struct rpc_clnt *clnt, sigset_t *oldset) 520void rpc_clnt_sigunmask(struct rpc_clnt *clnt, sigset_t *oldset)
517{ 521{
518 rpc_restore_sigmask(oldset); 522 rpc_restore_sigmask(oldset);
519} 523}
524EXPORT_SYMBOL(rpc_clnt_sigunmask);
520 525
521static 526static
522struct rpc_task *rpc_do_run_task(struct rpc_clnt *clnt, 527struct rpc_task *rpc_do_run_task(struct rpc_clnt *clnt,
@@ -572,6 +577,7 @@ int rpc_call_sync(struct rpc_clnt *clnt, struct rpc_message *msg, int flags)
572 rpc_put_task(task); 577 rpc_put_task(task);
573 return status; 578 return status;
574} 579}
580EXPORT_SYMBOL(rpc_call_sync);
575 581
576/** 582/**
577 * rpc_call_async - Perform an asynchronous RPC call 583 * rpc_call_async - Perform an asynchronous RPC call
@@ -593,6 +599,7 @@ rpc_call_async(struct rpc_clnt *clnt, struct rpc_message *msg, int flags,
593 rpc_put_task(task); 599 rpc_put_task(task);
594 return 0; 600 return 0;
595} 601}
602EXPORT_SYMBOL(rpc_call_async);
596 603
597/** 604/**
598 * rpc_run_task - Allocate a new RPC task, then run rpc_execute against it 605 * rpc_run_task - Allocate a new RPC task, then run rpc_execute against it
@@ -625,6 +632,7 @@ rpc_call_setup(struct rpc_task *task, struct rpc_message *msg, int flags)
625 else 632 else
626 task->tk_action = rpc_exit_task; 633 task->tk_action = rpc_exit_task;
627} 634}
635EXPORT_SYMBOL(rpc_call_setup);
628 636
629/** 637/**
630 * rpc_peeraddr - extract remote peer address from clnt's xprt 638 * rpc_peeraddr - extract remote peer address from clnt's xprt
@@ -671,6 +679,7 @@ rpc_setbufsize(struct rpc_clnt *clnt, unsigned int sndsize, unsigned int rcvsize
671 if (xprt->ops->set_buffer_size) 679 if (xprt->ops->set_buffer_size)
672 xprt->ops->set_buffer_size(xprt, sndsize, rcvsize); 680 xprt->ops->set_buffer_size(xprt, sndsize, rcvsize);
673} 681}
682EXPORT_SYMBOL(rpc_setbufsize);
674 683
675/* 684/*
676 * Return size of largest payload RPC client can support, in bytes 685 * Return size of largest payload RPC client can support, in bytes
@@ -710,6 +719,7 @@ rpc_restart_call(struct rpc_task *task)
710 719
711 task->tk_action = call_start; 720 task->tk_action = call_start;
712} 721}
722EXPORT_SYMBOL(rpc_restart_call);
713 723
714/* 724/*
715 * 0. Initial state 725 * 0. Initial state
diff --git a/net/sunrpc/rpc_pipe.c b/net/sunrpc/rpc_pipe.c
index 5364e2e52e07..19b44e53e421 100644
--- a/net/sunrpc/rpc_pipe.c
+++ b/net/sunrpc/rpc_pipe.c
@@ -113,6 +113,7 @@ out:
113 wake_up(&rpci->waitq); 113 wake_up(&rpci->waitq);
114 return res; 114 return res;
115} 115}
116EXPORT_SYMBOL(rpc_queue_upcall);
116 117
117static inline void 118static inline void
118rpc_inode_setowner(struct inode *inode, void *private) 119rpc_inode_setowner(struct inode *inode, void *private)
@@ -805,6 +806,7 @@ err_dput:
805 -ENOMEM); 806 -ENOMEM);
806 goto out; 807 goto out;
807} 808}
809EXPORT_SYMBOL(rpc_mkpipe);
808 810
809/** 811/**
810 * rpc_unlink - remove a pipe 812 * rpc_unlink - remove a pipe
@@ -835,6 +837,7 @@ rpc_unlink(struct dentry *dentry)
835 dput(parent); 837 dput(parent);
836 return error; 838 return error;
837} 839}
840EXPORT_SYMBOL(rpc_unlink);
838 841
839/* 842/*
840 * populate the filesystem 843 * populate the filesystem
diff --git a/net/sunrpc/sched.c b/net/sunrpc/sched.c
index eed5dd9819cd..aff8ac6737c3 100644
--- a/net/sunrpc/sched.c
+++ b/net/sunrpc/sched.c
@@ -373,6 +373,7 @@ void rpc_sleep_on(struct rpc_wait_queue *q, struct rpc_task *task,
373 __rpc_sleep_on(q, task, action, timer); 373 __rpc_sleep_on(q, task, action, timer);
374 spin_unlock_bh(&q->lock); 374 spin_unlock_bh(&q->lock);
375} 375}
376EXPORT_SYMBOL(rpc_sleep_on);
376 377
377/** 378/**
378 * __rpc_do_wake_up_task - wake up a single rpc_task 379 * __rpc_do_wake_up_task - wake up a single rpc_task
@@ -444,6 +445,7 @@ void rpc_wake_up_task(struct rpc_task *task)
444 } 445 }
445 rcu_read_unlock_bh(); 446 rcu_read_unlock_bh();
446} 447}
448EXPORT_SYMBOL(rpc_wake_up_task);
447 449
448/* 450/*
449 * Wake up the next task on a priority queue. 451 * Wake up the next task on a priority queue.
@@ -519,6 +521,7 @@ struct rpc_task * rpc_wake_up_next(struct rpc_wait_queue *queue)
519 521
520 return task; 522 return task;
521} 523}
524EXPORT_SYMBOL(rpc_wake_up_next);
522 525
523/** 526/**
524 * rpc_wake_up - wake up all rpc_tasks 527 * rpc_wake_up - wake up all rpc_tasks
@@ -544,6 +547,7 @@ void rpc_wake_up(struct rpc_wait_queue *queue)
544 spin_unlock(&queue->lock); 547 spin_unlock(&queue->lock);
545 rcu_read_unlock_bh(); 548 rcu_read_unlock_bh();
546} 549}
550EXPORT_SYMBOL(rpc_wake_up);
547 551
548/** 552/**
549 * rpc_wake_up_status - wake up all rpc_tasks and set their status value. 553 * rpc_wake_up_status - wake up all rpc_tasks and set their status value.
@@ -572,6 +576,7 @@ void rpc_wake_up_status(struct rpc_wait_queue *queue, int status)
572 spin_unlock(&queue->lock); 576 spin_unlock(&queue->lock);
573 rcu_read_unlock_bh(); 577 rcu_read_unlock_bh();
574} 578}
579EXPORT_SYMBOL(rpc_wake_up_status);
575 580
576static void __rpc_atrun(struct rpc_task *task) 581static void __rpc_atrun(struct rpc_task *task)
577{ 582{
@@ -586,6 +591,7 @@ void rpc_delay(struct rpc_task *task, unsigned long delay)
586 task->tk_timeout = delay; 591 task->tk_timeout = delay;
587 rpc_sleep_on(&delay_queue, task, NULL, __rpc_atrun); 592 rpc_sleep_on(&delay_queue, task, NULL, __rpc_atrun);
588} 593}
594EXPORT_SYMBOL(rpc_delay);
589 595
590/* 596/*
591 * Helper to call task->tk_ops->rpc_call_prepare 597 * Helper to call task->tk_ops->rpc_call_prepare
@@ -731,6 +737,7 @@ void rpc_execute(struct rpc_task *task)
731 rpc_set_running(task); 737 rpc_set_running(task);
732 __rpc_execute(task); 738 __rpc_execute(task);
733} 739}
740EXPORT_SYMBOL(rpc_execute);
734 741
735static void rpc_async_schedule(struct work_struct *work) 742static void rpc_async_schedule(struct work_struct *work)
736{ 743{
@@ -848,6 +855,7 @@ void rpc_init_task(struct rpc_task *task, struct rpc_clnt *clnt, int flags, cons
848 dprintk("RPC: new task initialized, procpid %u\n", 855 dprintk("RPC: new task initialized, procpid %u\n",
849 task_pid_nr(current)); 856 task_pid_nr(current));
850} 857}
858EXPORT_SYMBOL(rpc_init_task);
851 859
852static struct rpc_task * 860static struct rpc_task *
853rpc_alloc_task(void) 861rpc_alloc_task(void)
@@ -959,6 +967,7 @@ void rpc_killall_tasks(struct rpc_clnt *clnt)
959 } 967 }
960 spin_unlock(&clnt->cl_lock); 968 spin_unlock(&clnt->cl_lock);
961} 969}
970EXPORT_SYMBOL(rpc_killall_tasks);
962 971
963int rpciod_up(void) 972int rpciod_up(void)
964{ 973{
diff --git a/net/sunrpc/stats.c b/net/sunrpc/stats.c
index 4d4f3738b688..fd97a49a96d3 100644
--- a/net/sunrpc/stats.c
+++ b/net/sunrpc/stats.c
@@ -241,12 +241,14 @@ rpc_proc_register(struct rpc_stat *statp)
241{ 241{
242 return do_register(statp->program->name, statp, &rpc_proc_fops); 242 return do_register(statp->program->name, statp, &rpc_proc_fops);
243} 243}
244EXPORT_SYMBOL(rpc_proc_register);
244 245
245void 246void
246rpc_proc_unregister(const char *name) 247rpc_proc_unregister(const char *name)
247{ 248{
248 remove_proc_entry(name, proc_net_rpc); 249 remove_proc_entry(name, proc_net_rpc);
249} 250}
251EXPORT_SYMBOL(rpc_proc_unregister);
250 252
251struct proc_dir_entry * 253struct proc_dir_entry *
252svc_proc_register(struct svc_stat *statp, const struct file_operations *fops) 254svc_proc_register(struct svc_stat *statp, const struct file_operations *fops)
diff --git a/net/sunrpc/sunrpc_syms.c b/net/sunrpc/sunrpc_syms.c
index 33d89e842c85..1a7e309d008b 100644
--- a/net/sunrpc/sunrpc_syms.c
+++ b/net/sunrpc/sunrpc_syms.c
@@ -22,45 +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 scheduler */
26EXPORT_SYMBOL(rpc_execute);
27EXPORT_SYMBOL(rpc_init_task);
28EXPORT_SYMBOL(rpc_sleep_on);
29EXPORT_SYMBOL(rpc_wake_up_next);
30EXPORT_SYMBOL(rpc_wake_up_task);
31EXPORT_SYMBOL(rpc_wake_up_status);
32
33/* RPC client functions */
34EXPORT_SYMBOL(rpc_clone_client);
35EXPORT_SYMBOL(rpc_bind_new_program);
36EXPORT_SYMBOL(rpc_shutdown_client);
37EXPORT_SYMBOL(rpc_killall_tasks);
38EXPORT_SYMBOL(rpc_call_sync);
39EXPORT_SYMBOL(rpc_call_async);
40EXPORT_SYMBOL(rpc_call_setup);
41EXPORT_SYMBOL(rpc_clnt_sigmask);
42EXPORT_SYMBOL(rpc_clnt_sigunmask);
43EXPORT_SYMBOL(rpc_delay);
44EXPORT_SYMBOL(rpc_restart_call);
45EXPORT_SYMBOL(rpc_setbufsize);
46EXPORT_SYMBOL(rpc_unlink);
47EXPORT_SYMBOL(rpc_wake_up);
48EXPORT_SYMBOL(rpc_queue_upcall);
49EXPORT_SYMBOL(rpc_mkpipe);
50
51/* Client transport */
52EXPORT_SYMBOL(xprt_set_timeout);
53
54/* Client credential cache */
55EXPORT_SYMBOL(rpcauth_register);
56EXPORT_SYMBOL(rpcauth_unregister);
57EXPORT_SYMBOL(rpcauth_create);
58EXPORT_SYMBOL(rpcauth_lookupcred);
59EXPORT_SYMBOL(rpcauth_lookup_credcache);
60EXPORT_SYMBOL(rpcauth_destroy_credcache);
61EXPORT_SYMBOL(rpcauth_init_credcache);
62EXPORT_SYMBOL(put_rpccred);
63
64/* RPC server stuff */ 25/* RPC server stuff */
65EXPORT_SYMBOL(svc_create); 26EXPORT_SYMBOL(svc_create);
66EXPORT_SYMBOL(svc_create_thread); 27EXPORT_SYMBOL(svc_create_thread);
@@ -81,8 +42,6 @@ EXPORT_SYMBOL(svc_set_client);
81 42
82/* RPC statistics */ 43/* RPC statistics */
83#ifdef CONFIG_PROC_FS 44#ifdef CONFIG_PROC_FS
84EXPORT_SYMBOL(rpc_proc_register);
85EXPORT_SYMBOL(rpc_proc_unregister);
86EXPORT_SYMBOL(svc_proc_register); 45EXPORT_SYMBOL(svc_proc_register);
87EXPORT_SYMBOL(svc_proc_unregister); 46EXPORT_SYMBOL(svc_proc_unregister);
88EXPORT_SYMBOL(svc_seq_show); 47EXPORT_SYMBOL(svc_seq_show);
@@ -105,31 +64,6 @@ EXPORT_SYMBOL(qword_get);
105EXPORT_SYMBOL(svcauth_unix_purge); 64EXPORT_SYMBOL(svcauth_unix_purge);
106EXPORT_SYMBOL(unix_domain_find); 65EXPORT_SYMBOL(unix_domain_find);
107 66
108/* Generic XDR */
109EXPORT_SYMBOL(xdr_encode_string);
110EXPORT_SYMBOL(xdr_decode_string_inplace);
111EXPORT_SYMBOL(xdr_decode_netobj);
112EXPORT_SYMBOL(xdr_encode_netobj);
113EXPORT_SYMBOL(xdr_encode_pages);
114EXPORT_SYMBOL(xdr_inline_pages);
115EXPORT_SYMBOL(xdr_shift_buf);
116EXPORT_SYMBOL(xdr_encode_word);
117EXPORT_SYMBOL(xdr_decode_word);
118EXPORT_SYMBOL(xdr_encode_array2);
119EXPORT_SYMBOL(xdr_decode_array2);
120EXPORT_SYMBOL(xdr_buf_from_iov);
121EXPORT_SYMBOL(xdr_buf_subsegment);
122EXPORT_SYMBOL(xdr_buf_read_netobj);
123EXPORT_SYMBOL(read_bytes_from_xdr_buf);
124
125/* Debugging symbols */
126#ifdef RPC_DEBUG
127EXPORT_SYMBOL(rpc_debug);
128EXPORT_SYMBOL(nfs_debug);
129EXPORT_SYMBOL(nfsd_debug);
130EXPORT_SYMBOL(nlm_debug);
131#endif
132
133extern struct cache_detail ip_map_cache, unix_gid_cache; 67extern struct cache_detail ip_map_cache, unix_gid_cache;
134 68
135static int __init 69static int __init
diff --git a/net/sunrpc/sysctl.c b/net/sunrpc/sysctl.c
index 2be714e9b382..c879732ae9d0 100644
--- a/net/sunrpc/sysctl.c
+++ b/net/sunrpc/sysctl.c
@@ -23,9 +23,16 @@
23 * Declare the debug flags here 23 * Declare the debug flags here
24 */ 24 */
25unsigned int rpc_debug; 25unsigned int rpc_debug;
26EXPORT_SYMBOL(rpc_debug);
27
26unsigned int nfs_debug; 28unsigned int nfs_debug;
29EXPORT_SYMBOL(nfs_debug);
30
27unsigned int nfsd_debug; 31unsigned int nfsd_debug;
32EXPORT_SYMBOL(nfsd_debug);
33
28unsigned int nlm_debug; 34unsigned int nlm_debug;
35EXPORT_SYMBOL(nlm_debug);
29 36
30#ifdef RPC_DEBUG 37#ifdef RPC_DEBUG
31 38
diff --git a/net/sunrpc/xdr.c b/net/sunrpc/xdr.c
index fdc5e6d7562b..54264062ea69 100644
--- a/net/sunrpc/xdr.c
+++ b/net/sunrpc/xdr.c
@@ -28,6 +28,7 @@ xdr_encode_netobj(__be32 *p, const struct xdr_netobj *obj)
28 memcpy(p, obj->data, obj->len); 28 memcpy(p, obj->data, obj->len);
29 return p + XDR_QUADLEN(obj->len); 29 return p + XDR_QUADLEN(obj->len);
30} 30}
31EXPORT_SYMBOL(xdr_encode_netobj);
31 32
32__be32 * 33__be32 *
33xdr_decode_netobj(__be32 *p, struct xdr_netobj *obj) 34xdr_decode_netobj(__be32 *p, struct xdr_netobj *obj)
@@ -40,6 +41,7 @@ xdr_decode_netobj(__be32 *p, struct xdr_netobj *obj)
40 obj->data = (u8 *) p; 41 obj->data = (u8 *) p;
41 return p + XDR_QUADLEN(len); 42 return p + XDR_QUADLEN(len);
42} 43}
44EXPORT_SYMBOL(xdr_decode_netobj);
43 45
44/** 46/**
45 * xdr_encode_opaque_fixed - Encode fixed length opaque data 47 * xdr_encode_opaque_fixed - Encode fixed length opaque data
@@ -91,6 +93,7 @@ xdr_encode_string(__be32 *p, const char *string)
91{ 93{
92 return xdr_encode_array(p, string, strlen(string)); 94 return xdr_encode_array(p, string, strlen(string));
93} 95}
96EXPORT_SYMBOL(xdr_encode_string);
94 97
95__be32 * 98__be32 *
96xdr_decode_string_inplace(__be32 *p, char **sp, int *lenp, int maxlen) 99xdr_decode_string_inplace(__be32 *p, char **sp, int *lenp, int maxlen)
@@ -103,6 +106,7 @@ xdr_decode_string_inplace(__be32 *p, char **sp, int *lenp, int maxlen)
103 *sp = (char *) p; 106 *sp = (char *) p;
104 return p + XDR_QUADLEN(len); 107 return p + XDR_QUADLEN(len);
105} 108}
109EXPORT_SYMBOL(xdr_decode_string_inplace);
106 110
107void 111void
108xdr_encode_pages(struct xdr_buf *xdr, struct page **pages, unsigned int base, 112xdr_encode_pages(struct xdr_buf *xdr, struct page **pages, unsigned int base,
@@ -130,6 +134,7 @@ xdr_encode_pages(struct xdr_buf *xdr, struct page **pages, unsigned int base,
130 xdr->buflen += len; 134 xdr->buflen += len;
131 xdr->len += len; 135 xdr->len += len;
132} 136}
137EXPORT_SYMBOL(xdr_encode_pages);
133 138
134void 139void
135xdr_inline_pages(struct xdr_buf *xdr, unsigned int offset, 140xdr_inline_pages(struct xdr_buf *xdr, unsigned int offset,
@@ -151,7 +156,7 @@ xdr_inline_pages(struct xdr_buf *xdr, unsigned int offset,
151 156
152 xdr->buflen += len; 157 xdr->buflen += len;
153} 158}
154 159EXPORT_SYMBOL(xdr_inline_pages);
155 160
156/* 161/*
157 * Helper routines for doing 'memmove' like operations on a struct xdr_buf 162 * Helper routines for doing 'memmove' like operations on a struct xdr_buf
@@ -418,6 +423,7 @@ xdr_shift_buf(struct xdr_buf *buf, size_t len)
418{ 423{
419 xdr_shrink_bufhead(buf, len); 424 xdr_shrink_bufhead(buf, len);
420} 425}
426EXPORT_SYMBOL(xdr_shift_buf);
421 427
422/** 428/**
423 * xdr_init_encode - Initialize a struct xdr_stream for sending data. 429 * xdr_init_encode - Initialize a struct xdr_stream for sending data.
@@ -639,6 +645,7 @@ xdr_buf_from_iov(struct kvec *iov, struct xdr_buf *buf)
639 buf->page_len = 0; 645 buf->page_len = 0;
640 buf->buflen = buf->len = iov->iov_len; 646 buf->buflen = buf->len = iov->iov_len;
641} 647}
648EXPORT_SYMBOL(xdr_buf_from_iov);
642 649
643/* Sets subbuf to the portion of buf of length len beginning base bytes 650/* Sets subbuf to the portion of buf of length len beginning base bytes
644 * from the start of buf. Returns -1 if base of length are out of bounds. */ 651 * from the start of buf. Returns -1 if base of length are out of bounds. */
@@ -687,6 +694,7 @@ xdr_buf_subsegment(struct xdr_buf *buf, struct xdr_buf *subbuf,
687 return -1; 694 return -1;
688 return 0; 695 return 0;
689} 696}
697EXPORT_SYMBOL(xdr_buf_subsegment);
690 698
691static void __read_bytes_from_xdr_buf(struct xdr_buf *subbuf, void *obj, unsigned int len) 699static void __read_bytes_from_xdr_buf(struct xdr_buf *subbuf, void *obj, unsigned int len)
692{ 700{
@@ -717,6 +725,7 @@ int read_bytes_from_xdr_buf(struct xdr_buf *buf, unsigned int base, void *obj, u
717 __read_bytes_from_xdr_buf(&subbuf, obj, len); 725 __read_bytes_from_xdr_buf(&subbuf, obj, len);
718 return 0; 726 return 0;
719} 727}
728EXPORT_SYMBOL(read_bytes_from_xdr_buf);
720 729
721static void __write_bytes_to_xdr_buf(struct xdr_buf *subbuf, void *obj, unsigned int len) 730static void __write_bytes_to_xdr_buf(struct xdr_buf *subbuf, void *obj, unsigned int len)
722{ 731{
@@ -760,6 +769,7 @@ xdr_decode_word(struct xdr_buf *buf, unsigned int base, u32 *obj)
760 *obj = ntohl(raw); 769 *obj = ntohl(raw);
761 return 0; 770 return 0;
762} 771}
772EXPORT_SYMBOL(xdr_decode_word);
763 773
764int 774int
765xdr_encode_word(struct xdr_buf *buf, unsigned int base, u32 obj) 775xdr_encode_word(struct xdr_buf *buf, unsigned int base, u32 obj)
@@ -768,6 +778,7 @@ xdr_encode_word(struct xdr_buf *buf, unsigned int base, u32 obj)
768 778
769 return write_bytes_to_xdr_buf(buf, base, &raw, sizeof(obj)); 779 return write_bytes_to_xdr_buf(buf, base, &raw, sizeof(obj));
770} 780}
781EXPORT_SYMBOL(xdr_encode_word);
771 782
772/* If the netobj starting offset bytes from the start of xdr_buf is contained 783/* If the netobj starting offset bytes from the start of xdr_buf is contained
773 * entirely in the head or the tail, set object to point to it; otherwise 784 * entirely in the head or the tail, set object to point to it; otherwise
@@ -805,6 +816,7 @@ int xdr_buf_read_netobj(struct xdr_buf *buf, struct xdr_netobj *obj, unsigned in
805 __read_bytes_from_xdr_buf(&subbuf, obj->data, obj->len); 816 __read_bytes_from_xdr_buf(&subbuf, obj->data, obj->len);
806 return 0; 817 return 0;
807} 818}
819EXPORT_SYMBOL(xdr_buf_read_netobj);
808 820
809/* Returns 0 on success, or else a negative error code. */ 821/* Returns 0 on success, or else a negative error code. */
810static int 822static int
@@ -1010,6 +1022,7 @@ xdr_decode_array2(struct xdr_buf *buf, unsigned int base,
1010 1022
1011 return xdr_xcode_array2(buf, base, desc, 0); 1023 return xdr_xcode_array2(buf, base, desc, 0);
1012} 1024}
1025EXPORT_SYMBOL(xdr_decode_array2);
1013 1026
1014int 1027int
1015xdr_encode_array2(struct xdr_buf *buf, unsigned int base, 1028xdr_encode_array2(struct xdr_buf *buf, unsigned int base,
@@ -1021,6 +1034,7 @@ xdr_encode_array2(struct xdr_buf *buf, unsigned int base,
1021 1034
1022 return xdr_xcode_array2(buf, base, desc, 1); 1035 return xdr_xcode_array2(buf, base, desc, 1);
1023} 1036}
1037EXPORT_SYMBOL(xdr_encode_array2);
1024 1038
1025int 1039int
1026xdr_process_buf(struct xdr_buf *buf, unsigned int offset, unsigned int len, 1040xdr_process_buf(struct xdr_buf *buf, unsigned int offset, unsigned int len,
diff --git a/net/sunrpc/xprt.c b/net/sunrpc/xprt.c
index 592c2ee63e0f..1fd47f918bb9 100644
--- a/net/sunrpc/xprt.c
+++ b/net/sunrpc/xprt.c
@@ -992,6 +992,7 @@ void xprt_set_timeout(struct rpc_timeout *to, unsigned int retr, unsigned long i
992 to->to_retries = retr; 992 to->to_retries = retr;
993 to->to_exponential = 0; 993 to->to_exponential = 0;
994} 994}
995EXPORT_SYMBOL(xprt_set_timeout);
995 996
996/** 997/**
997 * xprt_create_transport - create an RPC transport 998 * xprt_create_transport - create an RPC transport