summaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorNeil Brown <neilb@cse.unsw.edu.au>2004-06-26 20:58:19 -0700
committerLinus Torvalds <torvalds@ppc970.osdl.org>2004-06-26 20:58:19 -0700
commit7a9eaffa9ae8beab1127636546367159feda5820 (patch)
treeccaedd986eec21d1009df3e7b10f6e8bea9b57d4 /include
parent0bf213ab44a4ecebf41b453a9422a008c7048486 (diff)
[PATCH] knfsd: parse nsfd4 callback information
Preparation for delegations: parse callback information provided in setclientid request. From: Andy Adamson <andros@citi.umich.edu> Signed-off-by: J. Bruce Fields <bfields@citi.umich.edu> Signed-off-by: Neil Brown <neilb@cse.unsw.edu.au> Signed-off-by: Andrew Morton <akpm@osdl.org> Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include')
-rw-r--r--include/linux/nfsd/state.h18
1 files changed, 18 insertions, 0 deletions
diff --git a/include/linux/nfsd/state.h b/include/linux/nfsd/state.h
index 06da18506122..51d00f6ebf97 100644
--- a/include/linux/nfsd/state.h
+++ b/include/linux/nfsd/state.h
@@ -38,6 +38,7 @@
#define _NFSD4_STATE_H
#include <linux/list.h>
+#include <linux/sunrpc/clnt.h>
#define NFS4_OPAQUE_LIMIT 1024
typedef struct {
@@ -65,6 +66,22 @@ extern stateid_t onestateid;
#define ZERO_STATEID(stateid) (!memcmp((stateid), &zerostateid, sizeof(stateid_t)))
#define ONE_STATEID(stateid) (!memcmp((stateid), &onestateid, sizeof(stateid_t)))
+/* client delegation callback info */
+struct nfs4_callback {
+ /* SETCLIENTID info */
+ u32 cb_parsed; /* addr parsed */
+ u32 cb_addr;
+ unsigned short cb_port;
+ u32 cb_prog;
+ u32 cb_ident;
+ struct xdr_netobj cb_netid;
+ /* RPC client info */
+ u32 cb_set; /* successful CB_NULL call */
+ struct rpc_program cb_program;
+ struct rpc_stat cb_stat;
+ struct rpc_clnt * cb_client;
+};
+
/*
* struct nfs4_client - one per client. Clientids live here.
* o Each nfs4_client is hashed by clientid.
@@ -87,6 +104,7 @@ struct nfs4_client {
struct svc_cred cl_cred; /* setclientid principal */
clientid_t cl_clientid; /* generated by server */
nfs4_verifier cl_confirm; /* generated by server */
+ struct nfs4_callback cl_callback; /* callback info */
};
static inline void