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 /net/sunrpc/xprt.c | |
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>
Diffstat (limited to 'net/sunrpc/xprt.c')
-rw-r--r-- | net/sunrpc/xprt.c | 15 |
1 files changed, 15 insertions, 0 deletions
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 | { |