Commit | Line | Data |
---|---|---|
4a8d70bf RL |
1 | /****************************************************************************** |
2 | ||
3 | (c) 2008 NetApp. All Rights Reserved. | |
4 | ||
5 | NetApp provides this source code under the GPL v2 License. | |
6 | The GPL v2 license is available at | |
7 | http://opensource.org/licenses/gpl-license.php. | |
8 | ||
9 | THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS | |
10 | "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT | |
11 | LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR | |
12 | A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT OWNER OR | |
13 | CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, | |
14 | EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, | |
15 | PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR | |
16 | PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF | |
17 | LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING | |
18 | NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS | |
19 | SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. | |
20 | ||
21 | ******************************************************************************/ | |
22 | ||
23 | /* | |
24 | * Functions to create and manage the backchannel | |
25 | */ | |
26 | ||
27 | #ifndef _LINUX_SUNRPC_BC_XPRT_H | |
28 | #define _LINUX_SUNRPC_BC_XPRT_H | |
29 | ||
30 | #include <linux/sunrpc/svcsock.h> | |
31 | #include <linux/sunrpc/xprt.h> | |
0d90ba1c | 32 | #include <linux/sunrpc/sched.h> |
4a8d70bf | 33 | |
9e00abc3 | 34 | #ifdef CONFIG_SUNRPC_BACKCHANNEL |
4a8d70bf RL |
35 | struct rpc_rqst *xprt_alloc_bc_request(struct rpc_xprt *xprt); |
36 | void xprt_free_bc_request(struct rpc_rqst *req); | |
37 | int xprt_setup_backchannel(struct rpc_xprt *, unsigned int min_reqs); | |
09acfea5 | 38 | void xprt_destroy_backchannel(struct rpc_xprt *, unsigned int max_reqs); |
0d90ba1c | 39 | int bc_send(struct rpc_rqst *req); |
ba17686f AA |
40 | |
41 | /* | |
42 | * Determine if a shared backchannel is in use | |
43 | */ | |
44 | static inline int svc_is_backchannel(const struct svc_rqst *rqstp) | |
45 | { | |
4a19de0f | 46 | if (rqstp->rq_server->sv_bc_xprt) |
ba17686f AA |
47 | return 1; |
48 | return 0; | |
49 | } | |
9e00abc3 | 50 | #else /* CONFIG_SUNRPC_BACKCHANNEL */ |
4a8d70bf RL |
51 | static inline int xprt_setup_backchannel(struct rpc_xprt *xprt, |
52 | unsigned int min_reqs) | |
53 | { | |
54 | return 0; | |
55 | } | |
ba17686f AA |
56 | |
57 | static inline int svc_is_backchannel(const struct svc_rqst *rqstp) | |
58 | { | |
59 | return 0; | |
60 | } | |
c9acb42e TM |
61 | |
62 | static inline void xprt_free_bc_request(struct rpc_rqst *req) | |
63 | { | |
64 | } | |
9e00abc3 | 65 | #endif /* CONFIG_SUNRPC_BACKCHANNEL */ |
4a8d70bf RL |
66 | #endif /* _LINUX_SUNRPC_BC_XPRT_H */ |
67 |