diff options
| -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 | { |
