aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/nfsd/state.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/nfsd/state.h')
-rw-r--r--include/linux/nfsd/state.h44
1 files changed, 23 insertions, 21 deletions
diff --git a/include/linux/nfsd/state.h b/include/linux/nfsd/state.h
index 7ef4b7ad1214..57ab2ed08459 100644
--- a/include/linux/nfsd/state.h
+++ b/include/linux/nfsd/state.h
@@ -60,15 +60,6 @@ typedef struct {
60#define si_stateownerid si_opaque.so_stateownerid 60#define si_stateownerid si_opaque.so_stateownerid
61#define si_fileid si_opaque.so_fileid 61#define si_fileid si_opaque.so_fileid
62 62
63
64struct nfs4_cb_recall {
65 u32 cbr_ident;
66 int cbr_trunc;
67 stateid_t cbr_stateid;
68 struct knfsd_fh cbr_fh;
69 struct nfs4_delegation *cbr_dp;
70};
71
72struct nfs4_delegation { 63struct nfs4_delegation {
73 struct list_head dl_perfile; 64 struct list_head dl_perfile;
74 struct list_head dl_perclnt; 65 struct list_head dl_perclnt;
@@ -80,22 +71,25 @@ struct nfs4_delegation {
80 struct file *dl_vfs_file; 71 struct file *dl_vfs_file;
81 u32 dl_type; 72 u32 dl_type;
82 time_t dl_time; 73 time_t dl_time;
83 struct nfs4_cb_recall dl_recall; 74/* For recall: */
75 u32 dl_ident;
76 stateid_t dl_stateid;
77 struct knfsd_fh dl_fh;
78 int dl_retries;
84}; 79};
85 80
86#define dl_stateid dl_recall.cbr_stateid
87#define dl_fh dl_recall.cbr_fh
88
89/* client delegation callback info */ 81/* client delegation callback info */
90struct nfs4_callback { 82struct nfs4_cb_conn {
91 /* SETCLIENTID info */ 83 /* SETCLIENTID info */
92 u32 cb_addr; 84 u32 cb_addr;
93 unsigned short cb_port; 85 unsigned short cb_port;
94 u32 cb_prog; 86 u32 cb_prog;
95 u32 cb_ident; 87 u32 cb_minorversion;
88 u32 cb_ident; /* minorversion 0 only */
96 /* RPC client info */ 89 /* RPC client info */
97 atomic_t cb_set; /* successful CB_NULL call */ 90 atomic_t cb_set; /* successful CB_NULL call */
98 struct rpc_clnt * cb_client; 91 struct rpc_clnt * cb_client;
92 struct rpc_cred * cb_cred;
99}; 93};
100 94
101/* Maximum number of slots per session. 128 is useful for long haul TCP */ 95/* Maximum number of slots per session. 128 is useful for long haul TCP */
@@ -121,6 +115,17 @@ struct nfsd4_slot {
121 struct nfsd4_cache_entry sl_cache_entry; 115 struct nfsd4_cache_entry sl_cache_entry;
122}; 116};
123 117
118struct nfsd4_channel_attrs {
119 u32 headerpadsz;
120 u32 maxreq_sz;
121 u32 maxresp_sz;
122 u32 maxresp_cached;
123 u32 maxops;
124 u32 maxreqs;
125 u32 nr_rdma_attrs;
126 u32 rdma_attrs;
127};
128
124struct nfsd4_session { 129struct nfsd4_session {
125 struct kref se_ref; 130 struct kref se_ref;
126 struct list_head se_hash; /* hash by sessionid */ 131 struct list_head se_hash; /* hash by sessionid */
@@ -128,11 +133,8 @@ struct nfsd4_session {
128 u32 se_flags; 133 u32 se_flags;
129 struct nfs4_client *se_client; /* for expire_client */ 134 struct nfs4_client *se_client; /* for expire_client */
130 struct nfs4_sessionid se_sessionid; 135 struct nfs4_sessionid se_sessionid;
131 u32 se_fmaxreq_sz; 136 struct nfsd4_channel_attrs se_fchannel;
132 u32 se_fmaxresp_sz; 137 struct nfsd4_channel_attrs se_bchannel;
133 u32 se_fmaxresp_cached;
134 u32 se_fmaxops;
135 u32 se_fnumslots;
136 struct nfsd4_slot se_slots[]; /* forward channel slots */ 138 struct nfsd4_slot se_slots[]; /* forward channel slots */
137}; 139};
138 140
@@ -184,7 +186,7 @@ struct nfs4_client {
184 struct svc_cred cl_cred; /* setclientid principal */ 186 struct svc_cred cl_cred; /* setclientid principal */
185 clientid_t cl_clientid; /* generated by server */ 187 clientid_t cl_clientid; /* generated by server */
186 nfs4_verifier cl_confirm; /* generated by server */ 188 nfs4_verifier cl_confirm; /* generated by server */
187 struct nfs4_callback cl_callback; /* callback info */ 189 struct nfs4_cb_conn cl_cb_conn; /* callback info */
188 atomic_t cl_count; /* ref count */ 190 atomic_t cl_count; /* ref count */
189 u32 cl_firststate; /* recovery dir creation */ 191 u32 cl_firststate; /* recovery dir creation */
190 192