diff options
author | Chuck Lever <chuck.lever@oracle.com> | 2006-08-22 20:06:16 -0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-09-22 23:24:44 -0400 |
commit | bbf7c1dd2ae2b4040b41b1065ee9b1b6905b1605 (patch) | |
tree | b1867e722c1cc679b1834feeeeb21195f57dc873 /include/linux/sunrpc | |
parent | 5b1eacbcd78930d976eb50a93f1779d311b553d1 (diff) |
SUNRPC: Introduce transport switch callout for pluggable rpcbind
Introduce a clean transport switch API for plugging in different types of
rpcbind mechanisms. For instance, rpcbind can cleanly replace the
existing portmapper client, or a transport can choose to implement RPC
binding any way it likes.
Test plan:
Destructive testing (unplugging the network temporarily). Connectathon
with UDP and TCP. NFSv2/3 and NFSv4 mounting should be carefully checked.
Probably need to rig a server where certain services aren't running, or
that returns an error for some typical operation.
Signed-off-by: Chuck Lever <chuck.lever@oracle.com>
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'include/linux/sunrpc')
-rw-r--r-- | include/linux/sunrpc/clnt.h | 2 | ||||
-rw-r--r-- | include/linux/sunrpc/xprt.h | 1 |
2 files changed, 2 insertions, 1 deletions
diff --git a/include/linux/sunrpc/clnt.h b/include/linux/sunrpc/clnt.h index 00e9dbaec9c5..2e68ac0aa022 100644 --- a/include/linux/sunrpc/clnt.h +++ b/include/linux/sunrpc/clnt.h | |||
@@ -106,7 +106,7 @@ struct rpc_clnt *rpc_clone_client(struct rpc_clnt *); | |||
106 | int rpc_shutdown_client(struct rpc_clnt *); | 106 | int rpc_shutdown_client(struct rpc_clnt *); |
107 | int rpc_destroy_client(struct rpc_clnt *); | 107 | int rpc_destroy_client(struct rpc_clnt *); |
108 | void rpc_release_client(struct rpc_clnt *); | 108 | void rpc_release_client(struct rpc_clnt *); |
109 | void rpc_getport(struct rpc_task *, struct rpc_clnt *); | 109 | void rpc_getport(struct rpc_task *); |
110 | int rpc_register(u32, u32, int, unsigned short, int *); | 110 | int rpc_register(u32, u32, int, unsigned short, int *); |
111 | 111 | ||
112 | void rpc_call_setup(struct rpc_task *, struct rpc_message *, int); | 112 | void rpc_call_setup(struct rpc_task *, struct rpc_message *, int); |
diff --git a/include/linux/sunrpc/xprt.h b/include/linux/sunrpc/xprt.h index 4ce82616873d..84122559fa17 100644 --- a/include/linux/sunrpc/xprt.h +++ b/include/linux/sunrpc/xprt.h | |||
@@ -105,6 +105,7 @@ struct rpc_xprt_ops { | |||
105 | void (*set_buffer_size)(struct rpc_xprt *xprt, size_t sndsize, size_t rcvsize); | 105 | void (*set_buffer_size)(struct rpc_xprt *xprt, size_t sndsize, size_t rcvsize); |
106 | int (*reserve_xprt)(struct rpc_task *task); | 106 | int (*reserve_xprt)(struct rpc_task *task); |
107 | void (*release_xprt)(struct rpc_xprt *xprt, struct rpc_task *task); | 107 | void (*release_xprt)(struct rpc_xprt *xprt, struct rpc_task *task); |
108 | void (*rpcbind)(struct rpc_task *task); | ||
108 | void (*set_port)(struct rpc_xprt *xprt, unsigned short port); | 109 | void (*set_port)(struct rpc_xprt *xprt, unsigned short port); |
109 | void (*connect)(struct rpc_task *task); | 110 | void (*connect)(struct rpc_task *task); |
110 | void * (*buf_alloc)(struct rpc_task *task, size_t size); | 111 | void * (*buf_alloc)(struct rpc_task *task, size_t size); |