diff options
author | \"Talpey, Thomas\ <Thomas.Talpey@netapp.com> | 2007-09-10 13:45:36 -0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2007-10-09 17:17:36 -0400 |
commit | 1244480976d357447aeddd3f44977586bfa0462b (patch) | |
tree | 4933d4c352e9e1b9d72f01f4968dd116244b96f6 | |
parent | 4f22ccc3460ef65e9899ec271d36fc4ef795c68d (diff) |
SUNRPC: add EXPORT_SYMBOL_GPL for generic transport functions
SUNRPC: add EXPORT_SYMBOL_GPL for generic transport functions
As a preface to allowing arbitrary transport modules to be loaded
dynamically, add EXPORT_SYMBOL_GPL for all generic transport functions
that a transport implementation might want to use.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Acked-by: Tom Talpey <tmt@netapp.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
-rw-r--r-- | net/sunrpc/rpcb_clnt.c | 1 | ||||
-rw-r--r-- | net/sunrpc/sched.c | 2 | ||||
-rw-r--r-- | net/sunrpc/socklib.c | 3 | ||||
-rw-r--r-- | net/sunrpc/timer.c | 4 | ||||
-rw-r--r-- | net/sunrpc/xprt.c | 15 |
5 files changed, 25 insertions, 0 deletions
diff --git a/net/sunrpc/rpcb_clnt.c b/net/sunrpc/rpcb_clnt.c index 6f0af08a51dc..09a2a8fde093 100644 --- a/net/sunrpc/rpcb_clnt.c +++ b/net/sunrpc/rpcb_clnt.c | |||
@@ -415,6 +415,7 @@ bailout_nofree: | |||
415 | bailout_nowake: | 415 | bailout_nowake: |
416 | task->tk_status = status; | 416 | task->tk_status = status; |
417 | } | 417 | } |
418 | EXPORT_SYMBOL_GPL(rpcb_getport_async); | ||
418 | 419 | ||
419 | /* | 420 | /* |
420 | * Rpcbind child task calls this callback via tk_exit. | 421 | * Rpcbind child task calls this callback via tk_exit. |
diff --git a/net/sunrpc/sched.c b/net/sunrpc/sched.c index 954d7ec86c7e..3c773c53e12e 100644 --- a/net/sunrpc/sched.c +++ b/net/sunrpc/sched.c | |||
@@ -777,6 +777,7 @@ void *rpc_malloc(struct rpc_task *task, size_t size) | |||
777 | task->tk_pid, size, buf); | 777 | task->tk_pid, size, buf); |
778 | return &buf->data; | 778 | return &buf->data; |
779 | } | 779 | } |
780 | EXPORT_SYMBOL_GPL(rpc_malloc); | ||
780 | 781 | ||
781 | /** | 782 | /** |
782 | * rpc_free - free buffer allocated via rpc_malloc | 783 | * rpc_free - free buffer allocated via rpc_malloc |
@@ -802,6 +803,7 @@ void rpc_free(void *buffer) | |||
802 | else | 803 | else |
803 | kfree(buf); | 804 | kfree(buf); |
804 | } | 805 | } |
806 | EXPORT_SYMBOL_GPL(rpc_free); | ||
805 | 807 | ||
806 | /* | 808 | /* |
807 | * Creation and deletion of RPC task structures | 809 | * Creation and deletion of RPC task structures |
diff --git a/net/sunrpc/socklib.c b/net/sunrpc/socklib.c index 1d377d1ab7f4..97ac45f034d6 100644 --- a/net/sunrpc/socklib.c +++ b/net/sunrpc/socklib.c | |||
@@ -34,6 +34,7 @@ size_t xdr_skb_read_bits(struct xdr_skb_reader *desc, void *to, size_t len) | |||
34 | desc->offset += len; | 34 | desc->offset += len; |
35 | return len; | 35 | return len; |
36 | } | 36 | } |
37 | EXPORT_SYMBOL_GPL(xdr_skb_read_bits); | ||
37 | 38 | ||
38 | /** | 39 | /** |
39 | * xdr_skb_read_and_csum_bits - copy and checksum from skb to buffer | 40 | * xdr_skb_read_and_csum_bits - copy and checksum from skb to buffer |
@@ -137,6 +138,7 @@ copy_tail: | |||
137 | out: | 138 | out: |
138 | return copied; | 139 | return copied; |
139 | } | 140 | } |
141 | EXPORT_SYMBOL_GPL(xdr_partial_copy_from_skb); | ||
140 | 142 | ||
141 | /** | 143 | /** |
142 | * csum_partial_copy_to_xdr - checksum and copy data | 144 | * csum_partial_copy_to_xdr - checksum and copy data |
@@ -179,3 +181,4 @@ no_checksum: | |||
179 | return -1; | 181 | return -1; |
180 | return 0; | 182 | return 0; |
181 | } | 183 | } |
184 | EXPORT_SYMBOL_GPL(csum_partial_copy_to_xdr); | ||
diff --git a/net/sunrpc/timer.c b/net/sunrpc/timer.c index 8142fdb8a930..31becbf09263 100644 --- a/net/sunrpc/timer.c +++ b/net/sunrpc/timer.c | |||
@@ -17,6 +17,7 @@ | |||
17 | 17 | ||
18 | #include <linux/types.h> | 18 | #include <linux/types.h> |
19 | #include <linux/unistd.h> | 19 | #include <linux/unistd.h> |
20 | #include <linux/module.h> | ||
20 | 21 | ||
21 | #include <linux/sunrpc/clnt.h> | 22 | #include <linux/sunrpc/clnt.h> |
22 | 23 | ||
@@ -40,6 +41,7 @@ rpc_init_rtt(struct rpc_rtt *rt, unsigned long timeo) | |||
40 | rt->ntimeouts[i] = 0; | 41 | rt->ntimeouts[i] = 0; |
41 | } | 42 | } |
42 | } | 43 | } |
44 | EXPORT_SYMBOL_GPL(rpc_init_rtt); | ||
43 | 45 | ||
44 | /* | 46 | /* |
45 | * NB: When computing the smoothed RTT and standard deviation, | 47 | * NB: When computing the smoothed RTT and standard deviation, |
@@ -75,6 +77,7 @@ rpc_update_rtt(struct rpc_rtt *rt, unsigned timer, long m) | |||
75 | if (*sdrtt < RPC_RTO_MIN) | 77 | if (*sdrtt < RPC_RTO_MIN) |
76 | *sdrtt = RPC_RTO_MIN; | 78 | *sdrtt = RPC_RTO_MIN; |
77 | } | 79 | } |
80 | EXPORT_SYMBOL_GPL(rpc_update_rtt); | ||
78 | 81 | ||
79 | /* | 82 | /* |
80 | * Estimate rto for an nfs rpc sent via. an unreliable datagram. | 83 | * Estimate rto for an nfs rpc sent via. an unreliable datagram. |
@@ -103,3 +106,4 @@ rpc_calc_rto(struct rpc_rtt *rt, unsigned timer) | |||
103 | 106 | ||
104 | return res; | 107 | return res; |
105 | } | 108 | } |
109 | EXPORT_SYMBOL_GPL(rpc_calc_rto); | ||
diff --git a/net/sunrpc/xprt.c b/net/sunrpc/xprt.c index c8c2edccad7e..bc13616e7fdc 100644 --- a/net/sunrpc/xprt.c +++ b/net/sunrpc/xprt.c | |||
@@ -118,6 +118,7 @@ out_sleep: | |||
118 | rpc_sleep_on(&xprt->sending, task, NULL, NULL); | 118 | rpc_sleep_on(&xprt->sending, task, NULL, NULL); |
119 | return 0; | 119 | return 0; |
120 | } | 120 | } |
121 | EXPORT_SYMBOL_GPL(xprt_reserve_xprt); | ||
121 | 122 | ||
122 | static void xprt_clear_locked(struct rpc_xprt *xprt) | 123 | static void xprt_clear_locked(struct rpc_xprt *xprt) |
123 | { | 124 | { |
@@ -167,6 +168,7 @@ out_sleep: | |||
167 | rpc_sleep_on(&xprt->sending, task, NULL, NULL); | 168 | rpc_sleep_on(&xprt->sending, task, NULL, NULL); |
168 | return 0; | 169 | return 0; |
169 | } | 170 | } |
171 | EXPORT_SYMBOL_GPL(xprt_reserve_xprt_cong); | ||
170 | 172 | ||
171 | static inline int xprt_lock_write(struct rpc_xprt *xprt, struct rpc_task *task) | 173 | static inline int xprt_lock_write(struct rpc_xprt *xprt, struct rpc_task *task) |
172 | { | 174 | { |
@@ -246,6 +248,7 @@ void xprt_release_xprt(struct rpc_xprt *xprt, struct rpc_task *task) | |||
246 | __xprt_lock_write_next(xprt); | 248 | __xprt_lock_write_next(xprt); |
247 | } | 249 | } |
248 | } | 250 | } |
251 | EXPORT_SYMBOL_GPL(xprt_release_xprt); | ||
249 | 252 | ||
250 | /** | 253 | /** |
251 | * xprt_release_xprt_cong - allow other requests to use a transport | 254 | * xprt_release_xprt_cong - allow other requests to use a transport |
@@ -262,6 +265,7 @@ void xprt_release_xprt_cong(struct rpc_xprt *xprt, struct rpc_task *task) | |||
262 | __xprt_lock_write_next_cong(xprt); | 265 | __xprt_lock_write_next_cong(xprt); |
263 | } | 266 | } |
264 | } | 267 | } |
268 | EXPORT_SYMBOL_GPL(xprt_release_xprt_cong); | ||
265 | 269 | ||
266 | static inline void xprt_release_write(struct rpc_xprt *xprt, struct rpc_task *task) | 270 | static inline void xprt_release_write(struct rpc_xprt *xprt, struct rpc_task *task) |
267 | { | 271 | { |
@@ -314,6 +318,7 @@ void xprt_release_rqst_cong(struct rpc_task *task) | |||
314 | { | 318 | { |
315 | __xprt_put_cong(task->tk_xprt, task->tk_rqstp); | 319 | __xprt_put_cong(task->tk_xprt, task->tk_rqstp); |
316 | } | 320 | } |
321 | EXPORT_SYMBOL_GPL(xprt_release_rqst_cong); | ||
317 | 322 | ||
318 | /** | 323 | /** |
319 | * xprt_adjust_cwnd - adjust transport congestion window | 324 | * xprt_adjust_cwnd - adjust transport congestion window |
@@ -345,6 +350,7 @@ void xprt_adjust_cwnd(struct rpc_task *task, int result) | |||
345 | xprt->cwnd = cwnd; | 350 | xprt->cwnd = cwnd; |
346 | __xprt_put_cong(xprt, req); | 351 | __xprt_put_cong(xprt, req); |
347 | } | 352 | } |
353 | EXPORT_SYMBOL_GPL(xprt_adjust_cwnd); | ||
348 | 354 | ||
349 | /** | 355 | /** |
350 | * xprt_wake_pending_tasks - wake all tasks on a transport's pending queue | 356 | * xprt_wake_pending_tasks - wake all tasks on a transport's pending queue |
@@ -359,6 +365,7 @@ void xprt_wake_pending_tasks(struct rpc_xprt *xprt, int status) | |||
359 | else | 365 | else |
360 | rpc_wake_up(&xprt->pending); | 366 | rpc_wake_up(&xprt->pending); |
361 | } | 367 | } |
368 | EXPORT_SYMBOL_GPL(xprt_wake_pending_tasks); | ||
362 | 369 | ||
363 | /** | 370 | /** |
364 | * xprt_wait_for_buffer_space - wait for transport output buffer to clear | 371 | * xprt_wait_for_buffer_space - wait for transport output buffer to clear |
@@ -373,6 +380,7 @@ void xprt_wait_for_buffer_space(struct rpc_task *task) | |||
373 | task->tk_timeout = req->rq_timeout; | 380 | task->tk_timeout = req->rq_timeout; |
374 | rpc_sleep_on(&xprt->pending, task, NULL, NULL); | 381 | rpc_sleep_on(&xprt->pending, task, NULL, NULL); |
375 | } | 382 | } |
383 | EXPORT_SYMBOL_GPL(xprt_wait_for_buffer_space); | ||
376 | 384 | ||
377 | /** | 385 | /** |
378 | * xprt_write_space - wake the task waiting for transport output buffer space | 386 | * xprt_write_space - wake the task waiting for transport output buffer space |
@@ -393,6 +401,7 @@ void xprt_write_space(struct rpc_xprt *xprt) | |||
393 | } | 401 | } |
394 | spin_unlock_bh(&xprt->transport_lock); | 402 | spin_unlock_bh(&xprt->transport_lock); |
395 | } | 403 | } |
404 | EXPORT_SYMBOL_GPL(xprt_write_space); | ||
396 | 405 | ||
397 | /** | 406 | /** |
398 | * xprt_set_retrans_timeout_def - set a request's retransmit timeout | 407 | * xprt_set_retrans_timeout_def - set a request's retransmit timeout |
@@ -406,6 +415,7 @@ void xprt_set_retrans_timeout_def(struct rpc_task *task) | |||
406 | { | 415 | { |
407 | task->tk_timeout = task->tk_rqstp->rq_timeout; | 416 | task->tk_timeout = task->tk_rqstp->rq_timeout; |
408 | } | 417 | } |
418 | EXPORT_SYMBOL_GPL(xprt_set_retrans_timeout_def); | ||
409 | 419 | ||
410 | /* | 420 | /* |
411 | * xprt_set_retrans_timeout_rtt - set a request's retransmit timeout | 421 | * xprt_set_retrans_timeout_rtt - set a request's retransmit timeout |
@@ -425,6 +435,7 @@ void xprt_set_retrans_timeout_rtt(struct rpc_task *task) | |||
425 | if (task->tk_timeout > max_timeout || task->tk_timeout == 0) | 435 | if (task->tk_timeout > max_timeout || task->tk_timeout == 0) |
426 | task->tk_timeout = max_timeout; | 436 | task->tk_timeout = max_timeout; |
427 | } | 437 | } |
438 | EXPORT_SYMBOL_GPL(xprt_set_retrans_timeout_rtt); | ||
428 | 439 | ||
429 | static void xprt_reset_majortimeo(struct rpc_rqst *req) | 440 | static void xprt_reset_majortimeo(struct rpc_rqst *req) |
430 | { | 441 | { |
@@ -500,6 +511,7 @@ void xprt_disconnect(struct rpc_xprt *xprt) | |||
500 | xprt_wake_pending_tasks(xprt, -ENOTCONN); | 511 | xprt_wake_pending_tasks(xprt, -ENOTCONN); |
501 | spin_unlock_bh(&xprt->transport_lock); | 512 | spin_unlock_bh(&xprt->transport_lock); |
502 | } | 513 | } |
514 | EXPORT_SYMBOL_GPL(xprt_disconnect); | ||
503 | 515 | ||
504 | static void | 516 | static void |
505 | xprt_init_autodisconnect(unsigned long data) | 517 | xprt_init_autodisconnect(unsigned long data) |
@@ -610,6 +622,7 @@ struct rpc_rqst *xprt_lookup_rqst(struct rpc_xprt *xprt, __be32 xid) | |||
610 | xprt->stat.bad_xids++; | 622 | xprt->stat.bad_xids++; |
611 | return NULL; | 623 | return NULL; |
612 | } | 624 | } |
625 | EXPORT_SYMBOL_GPL(xprt_lookup_rqst); | ||
613 | 626 | ||
614 | /** | 627 | /** |
615 | * xprt_update_rtt - update an RPC client's RTT state after receiving a reply | 628 | * xprt_update_rtt - update an RPC client's RTT state after receiving a reply |
@@ -629,6 +642,7 @@ void xprt_update_rtt(struct rpc_task *task) | |||
629 | rpc_set_timeo(rtt, timer, req->rq_ntrans - 1); | 642 | rpc_set_timeo(rtt, timer, req->rq_ntrans - 1); |
630 | } | 643 | } |
631 | } | 644 | } |
645 | EXPORT_SYMBOL_GPL(xprt_update_rtt); | ||
632 | 646 | ||
633 | /** | 647 | /** |
634 | * xprt_complete_rqst - called when reply processing is complete | 648 | * xprt_complete_rqst - called when reply processing is complete |
@@ -653,6 +667,7 @@ void xprt_complete_rqst(struct rpc_task *task, int copied) | |||
653 | req->rq_received = req->rq_private_buf.len = copied; | 667 | req->rq_received = req->rq_private_buf.len = copied; |
654 | rpc_wake_up_task(task); | 668 | rpc_wake_up_task(task); |
655 | } | 669 | } |
670 | EXPORT_SYMBOL_GPL(xprt_complete_rqst); | ||
656 | 671 | ||
657 | static void xprt_timer(struct rpc_task *task) | 672 | static void xprt_timer(struct rpc_task *task) |
658 | { | 673 | { |