aboutsummaryrefslogtreecommitdiffstats
path: root/net/sunrpc/xprt.c
diff options
context:
space:
mode:
author\"Talpey, Thomas\ <Thomas.Talpey@netapp.com>2007-09-10 13:45:36 -0400
committerTrond Myklebust <Trond.Myklebust@netapp.com>2007-10-09 17:17:36 -0400
commit1244480976d357447aeddd3f44977586bfa0462b (patch)
tree4933d4c352e9e1b9d72f01f4968dd116244b96f6 /net/sunrpc/xprt.c
parent4f22ccc3460ef65e9899ec271d36fc4ef795c68d (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.c15
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}
121EXPORT_SYMBOL_GPL(xprt_reserve_xprt);
121 122
122static void xprt_clear_locked(struct rpc_xprt *xprt) 123static 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}
171EXPORT_SYMBOL_GPL(xprt_reserve_xprt_cong);
170 172
171static inline int xprt_lock_write(struct rpc_xprt *xprt, struct rpc_task *task) 173static 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}
251EXPORT_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}
268EXPORT_SYMBOL_GPL(xprt_release_xprt_cong);
265 269
266static inline void xprt_release_write(struct rpc_xprt *xprt, struct rpc_task *task) 270static 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}
321EXPORT_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}
353EXPORT_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}
368EXPORT_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}
383EXPORT_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}
404EXPORT_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}
418EXPORT_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}
438EXPORT_SYMBOL_GPL(xprt_set_retrans_timeout_rtt);
428 439
429static void xprt_reset_majortimeo(struct rpc_rqst *req) 440static 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}
514EXPORT_SYMBOL_GPL(xprt_disconnect);
503 515
504static void 516static void
505xprt_init_autodisconnect(unsigned long data) 517xprt_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}
625EXPORT_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}
645EXPORT_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}
670EXPORT_SYMBOL_GPL(xprt_complete_rqst);
656 671
657static void xprt_timer(struct rpc_task *task) 672static void xprt_timer(struct rpc_task *task)
658{ 673{