aboutsummaryrefslogtreecommitdiffstats
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
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>
-rw-r--r--net/sunrpc/rpcb_clnt.c1
-rw-r--r--net/sunrpc/sched.c2
-rw-r--r--net/sunrpc/socklib.c3
-rw-r--r--net/sunrpc/timer.c4
-rw-r--r--net/sunrpc/xprt.c15
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:
415bailout_nowake: 415bailout_nowake:
416 task->tk_status = status; 416 task->tk_status = status;
417} 417}
418EXPORT_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}
780EXPORT_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}
806EXPORT_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}
37EXPORT_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:
137out: 138out:
138 return copied; 139 return copied;
139} 140}
141EXPORT_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}
184EXPORT_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}
44EXPORT_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}
80EXPORT_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}
109EXPORT_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}
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{