Commit 9104a55dc382c4aae42dff3f54351085cbcb7317

Authored by Trond Myklebust
1 parent 9936781d01

NFSv4: More NFSv4 xdr cleanups

Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>

Showing 1 changed file with 134 additions and 74 deletions Side-by-side Diff

... ... @@ -72,10 +72,15 @@
72 72 */
73 73 #define open_owner_id_maxsz (1 + 4)
74 74 #define lock_owner_id_maxsz (1 + 4)
  75 +#define decode_lockowner_maxsz (1 + XDR_QUADLEN(IDMAP_NAMESZ))
75 76 #define compound_encode_hdr_maxsz (3 + (NFS4_MAXTAGLEN >> 2))
76 77 #define compound_decode_hdr_maxsz (3 + (NFS4_MAXTAGLEN >> 2))
77 78 #define op_encode_hdr_maxsz (1)
78 79 #define op_decode_hdr_maxsz (2)
  80 +#define encode_stateid_maxsz (XDR_QUADLEN(NFS4_STATEID_SIZE))
  81 +#define decode_stateid_maxsz (XDR_QUADLEN(NFS4_STATEID_SIZE))
  82 +#define encode_verifier_maxsz (XDR_QUADLEN(NFS4_VERIFIER_SIZE))
  83 +#define decode_verifier_maxsz (XDR_QUADLEN(NFS4_VERIFIER_SIZE))
79 84 #define encode_putfh_maxsz (op_encode_hdr_maxsz + 1 + \
80 85 (NFS4_FHSIZE >> 2))
81 86 #define decode_putfh_maxsz (op_decode_hdr_maxsz)
... ... @@ -96,6 +101,11 @@
96 101 #define nfs4_fattr_maxsz (nfs4_fattr_bitmap_maxsz + \
97 102 nfs4_fattr_value_maxsz)
98 103 #define decode_getattr_maxsz (op_decode_hdr_maxsz + nfs4_fattr_maxsz)
  104 +#define encode_attrs_maxsz (nfs4_fattr_bitmap_maxsz + \
  105 + 1 + 2 + 1 + \
  106 + nfs4_owner_maxsz + \
  107 + nfs4_group_maxsz + \
  108 + 4 + 4)
99 109 #define encode_savefh_maxsz (op_encode_hdr_maxsz)
100 110 #define decode_savefh_maxsz (op_decode_hdr_maxsz)
101 111 #define encode_restorefh_maxsz (op_encode_hdr_maxsz)
... ... @@ -123,7 +133,7 @@
123 133 #define decode_lookup_maxsz (op_decode_hdr_maxsz)
124 134 #define encode_share_access_maxsz \
125 135 (2)
126   -#define encode_createmode_maxsz (1 + nfs4_fattr_maxsz)
  136 +#define encode_createmode_maxsz (1 + encode_attrs_maxsz)
127 137 #define encode_opentype_maxsz (1 + encode_createmode_maxsz)
128 138 #define encode_claim_null_maxsz (1 + nfs4_name_maxsz)
129 139 #define encode_open_maxsz (op_encode_hdr_maxsz + \
130 140  
131 141  
... ... @@ -132,14 +142,52 @@
132 142 encode_opentype_maxsz + \
133 143 encode_claim_null_maxsz)
134 144 #define decode_ace_maxsz (3 + nfs4_owner_maxsz)
135   -#define decode_delegation_maxsz (1 + XDR_QUADLEN(NFS4_STATEID_SIZE) + 1 + \
  145 +#define decode_delegation_maxsz (1 + decode_stateid_maxsz + 1 + \
136 146 decode_ace_maxsz)
137 147 #define decode_change_info_maxsz (5)
138 148 #define decode_open_maxsz (op_decode_hdr_maxsz + \
139   - XDR_QUADLEN(NFS4_STATEID_SIZE) + \
  149 + decode_stateid_maxsz + \
140 150 decode_change_info_maxsz + 1 + \
141 151 nfs4_fattr_bitmap_maxsz + \
142 152 decode_delegation_maxsz)
  153 +#define encode_open_confirm_maxsz \
  154 + (op_encode_hdr_maxsz + \
  155 + encode_stateid_maxsz + 1)
  156 +#define decode_open_confirm_maxsz \
  157 + (op_decode_hdr_maxsz + \
  158 + decode_stateid_maxsz)
  159 +#define encode_open_downgrade_maxsz \
  160 + (op_encode_hdr_maxsz + \
  161 + encode_stateid_maxsz + 1 + \
  162 + encode_share_access_maxsz)
  163 +#define decode_open_downgrade_maxsz \
  164 + (op_decode_hdr_maxsz + \
  165 + decode_stateid_maxsz)
  166 +#define encode_close_maxsz (op_encode_hdr_maxsz + \
  167 + 1 + encode_stateid_maxsz)
  168 +#define decode_close_maxsz (op_decode_hdr_maxsz + \
  169 + decode_stateid_maxsz)
  170 +#define encode_setattr_maxsz (op_encode_hdr_maxsz + \
  171 + encode_stateid_maxsz + \
  172 + encode_attrs_maxsz)
  173 +#define decode_setattr_maxsz (op_decode_hdr_maxsz + \
  174 + nfs4_fattr_bitmap_maxsz)
  175 +#define encode_read_maxsz (op_encode_hdr_maxsz + \
  176 + encode_stateid_maxsz + 3)
  177 +#define decode_read_maxsz (op_decode_hdr_maxsz + 2)
  178 +#define encode_readdir_maxsz (op_encode_hdr_maxsz + \
  179 + 2 + encode_verifier_maxsz + 5)
  180 +#define decode_readdir_maxsz (op_decode_hdr_maxsz + \
  181 + decode_verifier_maxsz)
  182 +#define encode_readlink_maxsz (op_encode_hdr_maxsz)
  183 +#define decode_readlink_maxsz (op_decode_hdr_maxsz + 1)
  184 +#define encode_write_maxsz (op_encode_hdr_maxsz + \
  185 + encode_stateid_maxsz + 4)
  186 +#define decode_write_maxsz (op_decode_hdr_maxsz + \
  187 + 2 + decode_verifier_maxsz)
  188 +#define encode_commit_maxsz (op_encode_hdr_maxsz + 3)
  189 +#define decode_commit_maxsz (op_decode_hdr_maxsz + \
  190 + decode_verifier_maxsz)
143 191 #define encode_remove_maxsz (op_encode_hdr_maxsz + \
144 192 nfs4_name_maxsz)
145 193 #define encode_rename_maxsz (op_encode_hdr_maxsz + \
146 194  
147 195  
148 196  
... ... @@ -148,19 +196,44 @@
148 196 #define encode_link_maxsz (op_encode_hdr_maxsz + \
149 197 nfs4_name_maxsz)
150 198 #define decode_link_maxsz (op_decode_hdr_maxsz + 5)
  199 +#define encode_lock_maxsz (op_encode_hdr_maxsz + \
  200 + 7 + \
  201 + 1 + encode_stateid_maxsz + 8)
  202 +#define decode_lock_denied_maxsz \
  203 + (8 + decode_lockowner_maxsz)
  204 +#define decode_lock_maxsz (op_decode_hdr_maxsz + \
  205 + decode_lock_denied_maxsz)
  206 +#define encode_lockt_maxsz (op_encode_hdr_maxsz + 12)
  207 +#define decode_lockt_maxsz (op_decode_hdr_maxsz + \
  208 + decode_lock_denied_maxsz)
  209 +#define encode_locku_maxsz (op_encode_hdr_maxsz + 3 + \
  210 + encode_stateid_maxsz + \
  211 + 4)
  212 +#define decode_locku_maxsz (op_decode_hdr_maxsz + \
  213 + decode_stateid_maxsz)
  214 +#define encode_access_maxsz (op_encode_hdr_maxsz + 1)
  215 +#define decode_access_maxsz (op_decode_hdr_maxsz + 2)
151 216 #define encode_symlink_maxsz (op_encode_hdr_maxsz + \
152 217 1 + nfs4_name_maxsz + \
153 218 1 + \
154 219 nfs4_fattr_maxsz)
155 220 #define decode_symlink_maxsz (op_decode_hdr_maxsz + 8)
156 221 #define encode_create_maxsz (op_encode_hdr_maxsz + \
157   - 2 + nfs4_name_maxsz + \
158   - nfs4_fattr_maxsz)
  222 + 1 + 2 + nfs4_name_maxsz + \
  223 + encode_attrs_maxsz)
159 224 #define decode_create_maxsz (op_decode_hdr_maxsz + \
160 225 decode_change_info_maxsz + \
161 226 nfs4_fattr_bitmap_maxsz)
  227 +#define encode_statfs_maxsz (encode_getattr_maxsz)
  228 +#define decode_statfs_maxsz (decode_getattr_maxsz)
162 229 #define encode_delegreturn_maxsz (op_encode_hdr_maxsz + 4)
163 230 #define decode_delegreturn_maxsz (op_decode_hdr_maxsz)
  231 +#define encode_getacl_maxsz (encode_getattr_maxsz)
  232 +#define decode_getacl_maxsz (op_decode_hdr_maxsz + \
  233 + nfs4_fattr_bitmap_maxsz + 1)
  234 +#define encode_setacl_maxsz (op_encode_hdr_maxsz + \
  235 + encode_stateid_maxsz + 3)
  236 +#define decode_setacl_maxsz (decode_setattr_maxsz)
164 237 #define encode_fs_locations_maxsz \
165 238 (encode_getattr_maxsz)
166 239 #define decode_fs_locations_maxsz \
167 240  
168 241  
169 242  
170 243  
171 244  
172 245  
173 246  
174 247  
175 248  
... ... @@ -169,37 +242,37 @@
169 242 #define NFS4_dec_compound_sz (1024) /* XXX: large enough? */
170 243 #define NFS4_enc_read_sz (compound_encode_hdr_maxsz + \
171 244 encode_putfh_maxsz + \
172   - op_encode_hdr_maxsz + 7)
  245 + encode_read_maxsz)
173 246 #define NFS4_dec_read_sz (compound_decode_hdr_maxsz + \
174 247 decode_putfh_maxsz + \
175   - op_decode_hdr_maxsz + 2)
  248 + decode_read_maxsz)
176 249 #define NFS4_enc_readlink_sz (compound_encode_hdr_maxsz + \
177 250 encode_putfh_maxsz + \
178   - op_encode_hdr_maxsz)
  251 + encode_readlink_maxsz)
179 252 #define NFS4_dec_readlink_sz (compound_decode_hdr_maxsz + \
180 253 decode_putfh_maxsz + \
181   - op_decode_hdr_maxsz)
  254 + decode_readlink_maxsz)
182 255 #define NFS4_enc_readdir_sz (compound_encode_hdr_maxsz + \
183 256 encode_putfh_maxsz + \
184   - op_encode_hdr_maxsz + 9)
  257 + encode_readdir_maxsz)
185 258 #define NFS4_dec_readdir_sz (compound_decode_hdr_maxsz + \
186 259 decode_putfh_maxsz + \
187   - op_decode_hdr_maxsz + 2)
  260 + decode_readdir_maxsz)
188 261 #define NFS4_enc_write_sz (compound_encode_hdr_maxsz + \
189 262 encode_putfh_maxsz + \
190   - op_encode_hdr_maxsz + 8 + \
  263 + encode_write_maxsz + \
191 264 encode_getattr_maxsz)
192 265 #define NFS4_dec_write_sz (compound_decode_hdr_maxsz + \
193 266 decode_putfh_maxsz + \
194   - op_decode_hdr_maxsz + 4 + \
  267 + decode_write_maxsz + \
195 268 decode_getattr_maxsz)
196 269 #define NFS4_enc_commit_sz (compound_encode_hdr_maxsz + \
197 270 encode_putfh_maxsz + \
198   - op_encode_hdr_maxsz + 3 + \
  271 + encode_commit_maxsz + \
199 272 encode_getattr_maxsz)
200 273 #define NFS4_dec_commit_sz (compound_decode_hdr_maxsz + \
201 274 decode_putfh_maxsz + \
202   - op_decode_hdr_maxsz + 2 + \
  275 + decode_commit_maxsz + \
203 276 decode_getattr_maxsz)
204 277 #define NFS4_enc_open_sz (compound_encode_hdr_maxsz + \
205 278 encode_putfh_maxsz + \
... ... @@ -217,13 +290,14 @@
217 290 decode_getattr_maxsz + \
218 291 decode_restorefh_maxsz + \
219 292 decode_getattr_maxsz)
220   -#define NFS4_enc_open_confirm_sz \
221   - (compound_encode_hdr_maxsz + \
222   - encode_putfh_maxsz + \
223   - op_encode_hdr_maxsz + 5)
224   -#define NFS4_dec_open_confirm_sz (compound_decode_hdr_maxsz + \
225   - decode_putfh_maxsz + \
226   - op_decode_hdr_maxsz + 4)
  293 +#define NFS4_enc_open_confirm_sz \
  294 + (compound_encode_hdr_maxsz + \
  295 + encode_putfh_maxsz + \
  296 + encode_open_confirm_maxsz)
  297 +#define NFS4_dec_open_confirm_sz \
  298 + (compound_decode_hdr_maxsz + \
  299 + decode_putfh_maxsz + \
  300 + decode_open_confirm_maxsz)
227 301 #define NFS4_enc_open_noattr_sz (compound_encode_hdr_maxsz + \
228 302 encode_putfh_maxsz + \
229 303 encode_open_maxsz + \
230 304  
... ... @@ -234,31 +308,30 @@
234 308 decode_getattr_maxsz)
235 309 #define NFS4_enc_open_downgrade_sz \
236 310 (compound_encode_hdr_maxsz + \
237   - encode_putfh_maxsz + \
238   - op_encode_hdr_maxsz + 7 + \
239   - encode_getattr_maxsz)
  311 + encode_putfh_maxsz + \
  312 + encode_open_downgrade_maxsz + \
  313 + encode_getattr_maxsz)
240 314 #define NFS4_dec_open_downgrade_sz \
241 315 (compound_decode_hdr_maxsz + \
242   - decode_putfh_maxsz + \
243   - op_decode_hdr_maxsz + 4 + \
244   - decode_getattr_maxsz)
245   -#define NFS4_enc_close_sz (compound_encode_hdr_maxsz + \
246   - encode_putfh_maxsz + \
247   - op_encode_hdr_maxsz + 5 + \
248   - encode_getattr_maxsz)
249   -#define NFS4_dec_close_sz (compound_decode_hdr_maxsz + \
250   - decode_putfh_maxsz + \
251   - op_decode_hdr_maxsz + 4 + \
252   - decode_getattr_maxsz)
253   -#define NFS4_enc_setattr_sz (compound_encode_hdr_maxsz + \
254   - encode_putfh_maxsz + \
255   - op_encode_hdr_maxsz + 4 + \
256   - nfs4_fattr_maxsz + \
257   - encode_getattr_maxsz)
258   -#define NFS4_dec_setattr_sz (compound_decode_hdr_maxsz + \
259   - decode_putfh_maxsz + \
260   - op_decode_hdr_maxsz + 3 + \
261   - nfs4_fattr_maxsz)
  316 + decode_putfh_maxsz + \
  317 + decode_open_downgrade_maxsz + \
  318 + decode_getattr_maxsz)
  319 +#define NFS4_enc_close_sz (compound_encode_hdr_maxsz + \
  320 + encode_putfh_maxsz + \
  321 + encode_close_maxsz + \
  322 + encode_getattr_maxsz)
  323 +#define NFS4_dec_close_sz (compound_decode_hdr_maxsz + \
  324 + decode_putfh_maxsz + \
  325 + decode_close_maxsz + \
  326 + decode_getattr_maxsz)
  327 +#define NFS4_enc_setattr_sz (compound_encode_hdr_maxsz + \
  328 + encode_putfh_maxsz + \
  329 + encode_setattr_maxsz + \
  330 + encode_getattr_maxsz)
  331 +#define NFS4_dec_setattr_sz (compound_decode_hdr_maxsz + \
  332 + decode_putfh_maxsz + \
  333 + decode_setattr_maxsz + \
  334 + decode_getattr_maxsz)
262 335 #define NFS4_enc_fsinfo_sz (compound_encode_hdr_maxsz + \
263 336 encode_putfh_maxsz + \
264 337 encode_fsinfo_maxsz)
265 338  
266 339  
267 340  
268 341  
269 342  
270 343  
... ... @@ -285,39 +358,28 @@
285 358 decode_fsinfo_maxsz)
286 359 #define NFS4_enc_lock_sz (compound_encode_hdr_maxsz + \
287 360 encode_putfh_maxsz + \
288   - encode_getattr_maxsz + \
289   - op_encode_hdr_maxsz + \
290   - 1 + 1 + 2 + 2 + \
291   - 1 + 4 + 1 + 2 + \
292   - lock_owner_id_maxsz)
  361 + encode_lock_maxsz)
293 362 #define NFS4_dec_lock_sz (compound_decode_hdr_maxsz + \
294 363 decode_putfh_maxsz + \
295   - decode_getattr_maxsz + \
296   - op_decode_hdr_maxsz + \
297   - 2 + 2 + 1 + 2 + \
298   - lock_owner_id_maxsz)
  364 + decode_lock_maxsz)
299 365 #define NFS4_enc_lockt_sz (compound_encode_hdr_maxsz + \
300 366 encode_putfh_maxsz + \
301   - encode_getattr_maxsz + \
302   - op_encode_hdr_maxsz + \
303   - 1 + 2 + 2 + 2 + \
304   - lock_owner_id_maxsz)
305   -#define NFS4_dec_lockt_sz (NFS4_dec_lock_sz)
  367 + encode_lockt_maxsz)
  368 +#define NFS4_dec_lockt_sz (compound_decode_hdr_maxsz + \
  369 + decode_putfh_maxsz + \
  370 + decode_lockt_maxsz)
306 371 #define NFS4_enc_locku_sz (compound_encode_hdr_maxsz + \
307 372 encode_putfh_maxsz + \
308   - encode_getattr_maxsz + \
309   - op_encode_hdr_maxsz + \
310   - 1 + 1 + 4 + 2 + 2)
  373 + encode_locku_maxsz)
311 374 #define NFS4_dec_locku_sz (compound_decode_hdr_maxsz + \
312 375 decode_putfh_maxsz + \
313   - decode_getattr_maxsz + \
314   - op_decode_hdr_maxsz + 4)
  376 + decode_locku_maxsz)
315 377 #define NFS4_enc_access_sz (compound_encode_hdr_maxsz + \
316 378 encode_putfh_maxsz + \
317   - op_encode_hdr_maxsz + 1)
  379 + encode_access_maxsz)
318 380 #define NFS4_dec_access_sz (compound_decode_hdr_maxsz + \
319 381 decode_putfh_maxsz + \
320   - op_decode_hdr_maxsz + 2)
  382 + decode_access_maxsz)
321 383 #define NFS4_enc_getattr_sz (compound_encode_hdr_maxsz + \
322 384 encode_putfh_maxsz + \
323 385 encode_getattr_maxsz)
324 386  
... ... @@ -416,10 +478,10 @@
416 478 decode_getattr_maxsz)
417 479 #define NFS4_enc_statfs_sz (compound_encode_hdr_maxsz + \
418 480 encode_putfh_maxsz + \
419   - encode_getattr_maxsz)
  481 + encode_statfs_maxsz)
420 482 #define NFS4_dec_statfs_sz (compound_decode_hdr_maxsz + \
421 483 decode_putfh_maxsz + \
422   - op_decode_hdr_maxsz + 12)
  484 + decode_statfs_maxsz)
423 485 #define NFS4_enc_server_caps_sz (compound_encode_hdr_maxsz + \
424 486 encode_putfh_maxsz + \
425 487 encode_getattr_maxsz)
426 488  
427 489  
428 490  
... ... @@ -435,18 +497,16 @@
435 497 decode_getattr_maxsz)
436 498 #define NFS4_enc_getacl_sz (compound_encode_hdr_maxsz + \
437 499 encode_putfh_maxsz + \
438   - encode_getattr_maxsz)
  500 + encode_getacl_maxsz)
439 501 #define NFS4_dec_getacl_sz (compound_decode_hdr_maxsz + \
440 502 decode_putfh_maxsz + \
441   - op_decode_hdr_maxsz + \
442   - nfs4_fattr_bitmap_maxsz + 1)
  503 + decode_getacl_maxsz)
443 504 #define NFS4_enc_setacl_sz (compound_encode_hdr_maxsz + \
444 505 encode_putfh_maxsz + \
445   - op_encode_hdr_maxsz + 4 + \
446   - nfs4_fattr_bitmap_maxsz + 1)
  506 + encode_setacl_maxsz)
447 507 #define NFS4_dec_setacl_sz (compound_decode_hdr_maxsz + \
448 508 decode_putfh_maxsz + \
449   - op_decode_hdr_maxsz + nfs4_fattr_bitmap_maxsz)
  509 + decode_setacl_maxsz)
450 510 #define NFS4_enc_fs_locations_sz \
451 511 (compound_encode_hdr_maxsz + \
452 512 encode_putfh_maxsz + \