aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/nfs_xdr.h
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2012-11-29 17:10:01 -0500
committerTrond Myklebust <Trond.Myklebust@netapp.com>2012-12-05 18:30:52 -0500
commit62ae082d883d167cdaa7895cf2972d85e178228a (patch)
treecf71e9354e61f9f930e48b689f9633e69d9af267 /include/linux/nfs_xdr.h
parent1e1093c7fd4951bb4272212c238d09cd7a22f5fc (diff)
NFSv4: Reorder the XDR structures to put sequence at the top, not bottom
Pre-condition for optimising the slot allocation and reintroducing FIFO behaviour. Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'include/linux/nfs_xdr.h')
-rw-r--r--include/linux/nfs_xdr.h138
1 files changed, 69 insertions, 69 deletions
diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h
index baa673edb597..a55abd499c21 100644
--- a/include/linux/nfs_xdr.h
+++ b/include/linux/nfs_xdr.h
@@ -205,8 +205,8 @@ struct nfs4_get_lease_time_args {
205}; 205};
206 206
207struct nfs4_get_lease_time_res { 207struct nfs4_get_lease_time_res {
208 struct nfs_fsinfo *lr_fsinfo;
209 struct nfs4_sequence_res lr_seq_res; 208 struct nfs4_sequence_res lr_seq_res;
209 struct nfs_fsinfo *lr_fsinfo;
210}; 210};
211 211
212#define PNFS_LAYOUT_MAXSIZE 4096 212#define PNFS_LAYOUT_MAXSIZE 4096
@@ -224,23 +224,23 @@ struct pnfs_layout_range {
224}; 224};
225 225
226struct nfs4_layoutget_args { 226struct nfs4_layoutget_args {
227 struct nfs4_sequence_args seq_args;
227 __u32 type; 228 __u32 type;
228 struct pnfs_layout_range range; 229 struct pnfs_layout_range range;
229 __u64 minlength; 230 __u64 minlength;
230 __u32 maxcount; 231 __u32 maxcount;
231 struct inode *inode; 232 struct inode *inode;
232 struct nfs_open_context *ctx; 233 struct nfs_open_context *ctx;
233 struct nfs4_sequence_args seq_args;
234 nfs4_stateid stateid; 234 nfs4_stateid stateid;
235 struct nfs4_layoutdriver_data layout; 235 struct nfs4_layoutdriver_data layout;
236}; 236};
237 237
238struct nfs4_layoutget_res { 238struct nfs4_layoutget_res {
239 struct nfs4_sequence_res seq_res;
239 __u32 return_on_close; 240 __u32 return_on_close;
240 struct pnfs_layout_range range; 241 struct pnfs_layout_range range;
241 __u32 type; 242 __u32 type;
242 nfs4_stateid stateid; 243 nfs4_stateid stateid;
243 struct nfs4_sequence_res seq_res;
244 struct nfs4_layoutdriver_data *layoutp; 244 struct nfs4_layoutdriver_data *layoutp;
245}; 245};
246 246
@@ -251,38 +251,38 @@ struct nfs4_layoutget {
251}; 251};
252 252
253struct nfs4_getdevicelist_args { 253struct nfs4_getdevicelist_args {
254 struct nfs4_sequence_args seq_args;
254 const struct nfs_fh *fh; 255 const struct nfs_fh *fh;
255 u32 layoutclass; 256 u32 layoutclass;
256 struct nfs4_sequence_args seq_args;
257}; 257};
258 258
259struct nfs4_getdevicelist_res { 259struct nfs4_getdevicelist_res {
260 struct pnfs_devicelist *devlist;
261 struct nfs4_sequence_res seq_res; 260 struct nfs4_sequence_res seq_res;
261 struct pnfs_devicelist *devlist;
262}; 262};
263 263
264struct nfs4_getdeviceinfo_args { 264struct nfs4_getdeviceinfo_args {
265 struct pnfs_device *pdev;
266 struct nfs4_sequence_args seq_args; 265 struct nfs4_sequence_args seq_args;
266 struct pnfs_device *pdev;
267}; 267};
268 268
269struct nfs4_getdeviceinfo_res { 269struct nfs4_getdeviceinfo_res {
270 struct pnfs_device *pdev;
271 struct nfs4_sequence_res seq_res; 270 struct nfs4_sequence_res seq_res;
271 struct pnfs_device *pdev;
272}; 272};
273 273
274struct nfs4_layoutcommit_args { 274struct nfs4_layoutcommit_args {
275 struct nfs4_sequence_args seq_args;
275 nfs4_stateid stateid; 276 nfs4_stateid stateid;
276 __u64 lastbytewritten; 277 __u64 lastbytewritten;
277 struct inode *inode; 278 struct inode *inode;
278 const u32 *bitmask; 279 const u32 *bitmask;
279 struct nfs4_sequence_args seq_args;
280}; 280};
281 281
282struct nfs4_layoutcommit_res { 282struct nfs4_layoutcommit_res {
283 struct nfs4_sequence_res seq_res;
283 struct nfs_fattr *fattr; 284 struct nfs_fattr *fattr;
284 const struct nfs_server *server; 285 const struct nfs_server *server;
285 struct nfs4_sequence_res seq_res;
286 int status; 286 int status;
287}; 287};
288 288
@@ -296,11 +296,11 @@ struct nfs4_layoutcommit_data {
296}; 296};
297 297
298struct nfs4_layoutreturn_args { 298struct nfs4_layoutreturn_args {
299 struct nfs4_sequence_args seq_args;
299 struct pnfs_layout_hdr *layout; 300 struct pnfs_layout_hdr *layout;
300 struct inode *inode; 301 struct inode *inode;
301 nfs4_stateid stateid; 302 nfs4_stateid stateid;
302 __u32 layout_type; 303 __u32 layout_type;
303 struct nfs4_sequence_args seq_args;
304}; 304};
305 305
306struct nfs4_layoutreturn_res { 306struct nfs4_layoutreturn_res {
@@ -326,6 +326,7 @@ struct stateowner_id {
326 * Arguments to the open call. 326 * Arguments to the open call.
327 */ 327 */
328struct nfs_openargs { 328struct nfs_openargs {
329 struct nfs4_sequence_args seq_args;
329 const struct nfs_fh * fh; 330 const struct nfs_fh * fh;
330 struct nfs_seqid * seqid; 331 struct nfs_seqid * seqid;
331 int open_flags; 332 int open_flags;
@@ -346,10 +347,10 @@ struct nfs_openargs {
346 const u32 * bitmask; 347 const u32 * bitmask;
347 const u32 * open_bitmap; 348 const u32 * open_bitmap;
348 __u32 claim; 349 __u32 claim;
349 struct nfs4_sequence_args seq_args;
350}; 350};
351 351
352struct nfs_openres { 352struct nfs_openres {
353 struct nfs4_sequence_res seq_res;
353 nfs4_stateid stateid; 354 nfs4_stateid stateid;
354 struct nfs_fh fh; 355 struct nfs_fh fh;
355 struct nfs4_change_info cinfo; 356 struct nfs4_change_info cinfo;
@@ -364,7 +365,6 @@ struct nfs_openres {
364 __u32 attrset[NFS4_BITMAP_SIZE]; 365 __u32 attrset[NFS4_BITMAP_SIZE];
365 struct nfs4_string *owner; 366 struct nfs4_string *owner;
366 struct nfs4_string *group_owner; 367 struct nfs4_string *group_owner;
367 struct nfs4_sequence_res seq_res;
368 __u32 access_request; 368 __u32 access_request;
369 __u32 access_supported; 369 __u32 access_supported;
370 __u32 access_result; 370 __u32 access_result;
@@ -388,20 +388,20 @@ struct nfs_open_confirmres {
388 * Arguments to the close call. 388 * Arguments to the close call.
389 */ 389 */
390struct nfs_closeargs { 390struct nfs_closeargs {
391 struct nfs4_sequence_args seq_args;
391 struct nfs_fh * fh; 392 struct nfs_fh * fh;
392 nfs4_stateid * stateid; 393 nfs4_stateid * stateid;
393 struct nfs_seqid * seqid; 394 struct nfs_seqid * seqid;
394 fmode_t fmode; 395 fmode_t fmode;
395 const u32 * bitmask; 396 const u32 * bitmask;
396 struct nfs4_sequence_args seq_args;
397}; 397};
398 398
399struct nfs_closeres { 399struct nfs_closeres {
400 struct nfs4_sequence_res seq_res;
400 nfs4_stateid stateid; 401 nfs4_stateid stateid;
401 struct nfs_fattr * fattr; 402 struct nfs_fattr * fattr;
402 struct nfs_seqid * seqid; 403 struct nfs_seqid * seqid;
403 const struct nfs_server *server; 404 const struct nfs_server *server;
404 struct nfs4_sequence_res seq_res;
405}; 405};
406/* 406/*
407 * * Arguments to the lock,lockt, and locku call. 407 * * Arguments to the lock,lockt, and locku call.
@@ -413,6 +413,7 @@ struct nfs_lowner {
413}; 413};
414 414
415struct nfs_lock_args { 415struct nfs_lock_args {
416 struct nfs4_sequence_args seq_args;
416 struct nfs_fh * fh; 417 struct nfs_fh * fh;
417 struct file_lock * fl; 418 struct file_lock * fl;
418 struct nfs_seqid * lock_seqid; 419 struct nfs_seqid * lock_seqid;
@@ -423,40 +424,39 @@ struct nfs_lock_args {
423 unsigned char block : 1; 424 unsigned char block : 1;
424 unsigned char reclaim : 1; 425 unsigned char reclaim : 1;
425 unsigned char new_lock_owner : 1; 426 unsigned char new_lock_owner : 1;
426 struct nfs4_sequence_args seq_args;
427}; 427};
428 428
429struct nfs_lock_res { 429struct nfs_lock_res {
430 struct nfs4_sequence_res seq_res;
430 nfs4_stateid stateid; 431 nfs4_stateid stateid;
431 struct nfs_seqid * lock_seqid; 432 struct nfs_seqid * lock_seqid;
432 struct nfs_seqid * open_seqid; 433 struct nfs_seqid * open_seqid;
433 struct nfs4_sequence_res seq_res;
434}; 434};
435 435
436struct nfs_locku_args { 436struct nfs_locku_args {
437 struct nfs4_sequence_args seq_args;
437 struct nfs_fh * fh; 438 struct nfs_fh * fh;
438 struct file_lock * fl; 439 struct file_lock * fl;
439 struct nfs_seqid * seqid; 440 struct nfs_seqid * seqid;
440 nfs4_stateid * stateid; 441 nfs4_stateid * stateid;
441 struct nfs4_sequence_args seq_args;
442}; 442};
443 443
444struct nfs_locku_res { 444struct nfs_locku_res {
445 struct nfs4_sequence_res seq_res;
445 nfs4_stateid stateid; 446 nfs4_stateid stateid;
446 struct nfs_seqid * seqid; 447 struct nfs_seqid * seqid;
447 struct nfs4_sequence_res seq_res;
448}; 448};
449 449
450struct nfs_lockt_args { 450struct nfs_lockt_args {
451 struct nfs4_sequence_args seq_args;
451 struct nfs_fh * fh; 452 struct nfs_fh * fh;
452 struct file_lock * fl; 453 struct file_lock * fl;
453 struct nfs_lowner lock_owner; 454 struct nfs_lowner lock_owner;
454 struct nfs4_sequence_args seq_args;
455}; 455};
456 456
457struct nfs_lockt_res { 457struct nfs_lockt_res {
458 struct file_lock * denied; /* LOCK, LOCKT failed */
459 struct nfs4_sequence_res seq_res; 458 struct nfs4_sequence_res seq_res;
459 struct file_lock * denied; /* LOCK, LOCKT failed */
460}; 460};
461 461
462struct nfs_release_lockowner_args { 462struct nfs_release_lockowner_args {
@@ -464,22 +464,23 @@ struct nfs_release_lockowner_args {
464}; 464};
465 465
466struct nfs4_delegreturnargs { 466struct nfs4_delegreturnargs {
467 struct nfs4_sequence_args seq_args;
467 const struct nfs_fh *fhandle; 468 const struct nfs_fh *fhandle;
468 const nfs4_stateid *stateid; 469 const nfs4_stateid *stateid;
469 const u32 * bitmask; 470 const u32 * bitmask;
470 struct nfs4_sequence_args seq_args;
471}; 471};
472 472
473struct nfs4_delegreturnres { 473struct nfs4_delegreturnres {
474 struct nfs4_sequence_res seq_res;
474 struct nfs_fattr * fattr; 475 struct nfs_fattr * fattr;
475 const struct nfs_server *server; 476 const struct nfs_server *server;
476 struct nfs4_sequence_res seq_res;
477}; 477};
478 478
479/* 479/*
480 * Arguments to the read call. 480 * Arguments to the read call.
481 */ 481 */
482struct nfs_readargs { 482struct nfs_readargs {
483 struct nfs4_sequence_args seq_args;
483 struct nfs_fh * fh; 484 struct nfs_fh * fh;
484 struct nfs_open_context *context; 485 struct nfs_open_context *context;
485 struct nfs_lock_context *lock_context; 486 struct nfs_lock_context *lock_context;
@@ -487,20 +488,20 @@ struct nfs_readargs {
487 __u32 count; 488 __u32 count;
488 unsigned int pgbase; 489 unsigned int pgbase;
489 struct page ** pages; 490 struct page ** pages;
490 struct nfs4_sequence_args seq_args;
491}; 491};
492 492
493struct nfs_readres { 493struct nfs_readres {
494 struct nfs4_sequence_res seq_res;
494 struct nfs_fattr * fattr; 495 struct nfs_fattr * fattr;
495 __u32 count; 496 __u32 count;
496 int eof; 497 int eof;
497 struct nfs4_sequence_res seq_res;
498}; 498};
499 499
500/* 500/*
501 * Arguments to the write call. 501 * Arguments to the write call.
502 */ 502 */
503struct nfs_writeargs { 503struct nfs_writeargs {
504 struct nfs4_sequence_args seq_args;
504 struct nfs_fh * fh; 505 struct nfs_fh * fh;
505 struct nfs_open_context *context; 506 struct nfs_open_context *context;
506 struct nfs_lock_context *lock_context; 507 struct nfs_lock_context *lock_context;
@@ -510,7 +511,6 @@ struct nfs_writeargs {
510 unsigned int pgbase; 511 unsigned int pgbase;
511 struct page ** pages; 512 struct page ** pages;
512 const u32 * bitmask; 513 const u32 * bitmask;
513 struct nfs4_sequence_args seq_args;
514}; 514};
515 515
516struct nfs_write_verifier { 516struct nfs_write_verifier {
@@ -523,65 +523,65 @@ struct nfs_writeverf {
523}; 523};
524 524
525struct nfs_writeres { 525struct nfs_writeres {
526 struct nfs4_sequence_res seq_res;
526 struct nfs_fattr * fattr; 527 struct nfs_fattr * fattr;
527 struct nfs_writeverf * verf; 528 struct nfs_writeverf * verf;
528 __u32 count; 529 __u32 count;
529 const struct nfs_server *server; 530 const struct nfs_server *server;
530 struct nfs4_sequence_res seq_res;
531}; 531};
532 532
533/* 533/*
534 * Arguments to the commit call. 534 * Arguments to the commit call.
535 */ 535 */
536struct nfs_commitargs { 536struct nfs_commitargs {
537 struct nfs4_sequence_args seq_args;
537 struct nfs_fh *fh; 538 struct nfs_fh *fh;
538 __u64 offset; 539 __u64 offset;
539 __u32 count; 540 __u32 count;
540 const u32 *bitmask; 541 const u32 *bitmask;
541 struct nfs4_sequence_args seq_args;
542}; 542};
543 543
544struct nfs_commitres { 544struct nfs_commitres {
545 struct nfs4_sequence_res seq_res;
545 struct nfs_fattr *fattr; 546 struct nfs_fattr *fattr;
546 struct nfs_writeverf *verf; 547 struct nfs_writeverf *verf;
547 const struct nfs_server *server; 548 const struct nfs_server *server;
548 struct nfs4_sequence_res seq_res;
549}; 549};
550 550
551/* 551/*
552 * Common arguments to the unlink call 552 * Common arguments to the unlink call
553 */ 553 */
554struct nfs_removeargs { 554struct nfs_removeargs {
555 struct nfs4_sequence_args seq_args;
555 const struct nfs_fh *fh; 556 const struct nfs_fh *fh;
556 struct qstr name; 557 struct qstr name;
557 struct nfs4_sequence_args seq_args;
558}; 558};
559 559
560struct nfs_removeres { 560struct nfs_removeres {
561 struct nfs4_sequence_res seq_res;
561 const struct nfs_server *server; 562 const struct nfs_server *server;
562 struct nfs_fattr *dir_attr; 563 struct nfs_fattr *dir_attr;
563 struct nfs4_change_info cinfo; 564 struct nfs4_change_info cinfo;
564 struct nfs4_sequence_res seq_res;
565}; 565};
566 566
567/* 567/*
568 * Common arguments to the rename call 568 * Common arguments to the rename call
569 */ 569 */
570struct nfs_renameargs { 570struct nfs_renameargs {
571 struct nfs4_sequence_args seq_args;
571 const struct nfs_fh *old_dir; 572 const struct nfs_fh *old_dir;
572 const struct nfs_fh *new_dir; 573 const struct nfs_fh *new_dir;
573 const struct qstr *old_name; 574 const struct qstr *old_name;
574 const struct qstr *new_name; 575 const struct qstr *new_name;
575 struct nfs4_sequence_args seq_args;
576}; 576};
577 577
578struct nfs_renameres { 578struct nfs_renameres {
579 struct nfs4_sequence_res seq_res;
579 const struct nfs_server *server; 580 const struct nfs_server *server;
580 struct nfs4_change_info old_cinfo; 581 struct nfs4_change_info old_cinfo;
581 struct nfs_fattr *old_fattr; 582 struct nfs_fattr *old_fattr;
582 struct nfs4_change_info new_cinfo; 583 struct nfs4_change_info new_cinfo;
583 struct nfs_fattr *new_fattr; 584 struct nfs_fattr *new_fattr;
584 struct nfs4_sequence_res seq_res;
585}; 585};
586 586
587/* 587/*
@@ -622,20 +622,20 @@ struct nfs_createargs {
622}; 622};
623 623
624struct nfs_setattrargs { 624struct nfs_setattrargs {
625 struct nfs4_sequence_args seq_args;
625 struct nfs_fh * fh; 626 struct nfs_fh * fh;
626 nfs4_stateid stateid; 627 nfs4_stateid stateid;
627 struct iattr * iap; 628 struct iattr * iap;
628 const struct nfs_server * server; /* Needed for name mapping */ 629 const struct nfs_server * server; /* Needed for name mapping */
629 const u32 * bitmask; 630 const u32 * bitmask;
630 struct nfs4_sequence_args seq_args;
631}; 631};
632 632
633struct nfs_setaclargs { 633struct nfs_setaclargs {
634 struct nfs4_sequence_args seq_args;
634 struct nfs_fh * fh; 635 struct nfs_fh * fh;
635 size_t acl_len; 636 size_t acl_len;
636 unsigned int acl_pgbase; 637 unsigned int acl_pgbase;
637 struct page ** acl_pages; 638 struct page ** acl_pages;
638 struct nfs4_sequence_args seq_args;
639}; 639};
640 640
641struct nfs_setaclres { 641struct nfs_setaclres {
@@ -643,27 +643,27 @@ struct nfs_setaclres {
643}; 643};
644 644
645struct nfs_getaclargs { 645struct nfs_getaclargs {
646 struct nfs4_sequence_args seq_args;
646 struct nfs_fh * fh; 647 struct nfs_fh * fh;
647 size_t acl_len; 648 size_t acl_len;
648 unsigned int acl_pgbase; 649 unsigned int acl_pgbase;
649 struct page ** acl_pages; 650 struct page ** acl_pages;
650 struct nfs4_sequence_args seq_args;
651}; 651};
652 652
653/* getxattr ACL interface flags */ 653/* getxattr ACL interface flags */
654#define NFS4_ACL_TRUNC 0x0001 /* ACL was truncated */ 654#define NFS4_ACL_TRUNC 0x0001 /* ACL was truncated */
655struct nfs_getaclres { 655struct nfs_getaclres {
656 struct nfs4_sequence_res seq_res;
656 size_t acl_len; 657 size_t acl_len;
657 size_t acl_data_offset; 658 size_t acl_data_offset;
658 int acl_flags; 659 int acl_flags;
659 struct page * acl_scratch; 660 struct page * acl_scratch;
660 struct nfs4_sequence_res seq_res;
661}; 661};
662 662
663struct nfs_setattrres { 663struct nfs_setattrres {
664 struct nfs4_sequence_res seq_res;
664 struct nfs_fattr * fattr; 665 struct nfs_fattr * fattr;
665 const struct nfs_server * server; 666 const struct nfs_server * server;
666 struct nfs4_sequence_res seq_res;
667}; 667};
668 668
669struct nfs_linkargs { 669struct nfs_linkargs {
@@ -828,21 +828,22 @@ struct nfs3_getaclres {
828typedef u64 clientid4; 828typedef u64 clientid4;
829 829
830struct nfs4_accessargs { 830struct nfs4_accessargs {
831 struct nfs4_sequence_args seq_args;
831 const struct nfs_fh * fh; 832 const struct nfs_fh * fh;
832 const u32 * bitmask; 833 const u32 * bitmask;
833 u32 access; 834 u32 access;
834 struct nfs4_sequence_args seq_args;
835}; 835};
836 836
837struct nfs4_accessres { 837struct nfs4_accessres {
838 struct nfs4_sequence_res seq_res;
838 const struct nfs_server * server; 839 const struct nfs_server * server;
839 struct nfs_fattr * fattr; 840 struct nfs_fattr * fattr;
840 u32 supported; 841 u32 supported;
841 u32 access; 842 u32 access;
842 struct nfs4_sequence_res seq_res;
843}; 843};
844 844
845struct nfs4_create_arg { 845struct nfs4_create_arg {
846 struct nfs4_sequence_args seq_args;
846 u32 ftype; 847 u32 ftype;
847 union { 848 union {
848 struct { 849 struct {
@@ -859,88 +860,88 @@ struct nfs4_create_arg {
859 const struct iattr * attrs; 860 const struct iattr * attrs;
860 const struct nfs_fh * dir_fh; 861 const struct nfs_fh * dir_fh;
861 const u32 * bitmask; 862 const u32 * bitmask;
862 struct nfs4_sequence_args seq_args;
863}; 863};
864 864
865struct nfs4_create_res { 865struct nfs4_create_res {
866 struct nfs4_sequence_res seq_res;
866 const struct nfs_server * server; 867 const struct nfs_server * server;
867 struct nfs_fh * fh; 868 struct nfs_fh * fh;
868 struct nfs_fattr * fattr; 869 struct nfs_fattr * fattr;
869 struct nfs4_change_info dir_cinfo; 870 struct nfs4_change_info dir_cinfo;
870 struct nfs4_sequence_res seq_res;
871}; 871};
872 872
873struct nfs4_fsinfo_arg { 873struct nfs4_fsinfo_arg {
874 struct nfs4_sequence_args seq_args;
874 const struct nfs_fh * fh; 875 const struct nfs_fh * fh;
875 const u32 * bitmask; 876 const u32 * bitmask;
876 struct nfs4_sequence_args seq_args;
877}; 877};
878 878
879struct nfs4_fsinfo_res { 879struct nfs4_fsinfo_res {
880 struct nfs_fsinfo *fsinfo;
881 struct nfs4_sequence_res seq_res; 880 struct nfs4_sequence_res seq_res;
881 struct nfs_fsinfo *fsinfo;
882}; 882};
883 883
884struct nfs4_getattr_arg { 884struct nfs4_getattr_arg {
885 struct nfs4_sequence_args seq_args;
885 const struct nfs_fh * fh; 886 const struct nfs_fh * fh;
886 const u32 * bitmask; 887 const u32 * bitmask;
887 struct nfs4_sequence_args seq_args;
888}; 888};
889 889
890struct nfs4_getattr_res { 890struct nfs4_getattr_res {
891 struct nfs4_sequence_res seq_res;
891 const struct nfs_server * server; 892 const struct nfs_server * server;
892 struct nfs_fattr * fattr; 893 struct nfs_fattr * fattr;
893 struct nfs4_sequence_res seq_res;
894}; 894};
895 895
896struct nfs4_link_arg { 896struct nfs4_link_arg {
897 struct nfs4_sequence_args seq_args;
897 const struct nfs_fh * fh; 898 const struct nfs_fh * fh;
898 const struct nfs_fh * dir_fh; 899 const struct nfs_fh * dir_fh;
899 const struct qstr * name; 900 const struct qstr * name;
900 const u32 * bitmask; 901 const u32 * bitmask;
901 struct nfs4_sequence_args seq_args;
902}; 902};
903 903
904struct nfs4_link_res { 904struct nfs4_link_res {
905 struct nfs4_sequence_res seq_res;
905 const struct nfs_server * server; 906 const struct nfs_server * server;
906 struct nfs_fattr * fattr; 907 struct nfs_fattr * fattr;
907 struct nfs4_change_info cinfo; 908 struct nfs4_change_info cinfo;
908 struct nfs_fattr * dir_attr; 909 struct nfs_fattr * dir_attr;
909 struct nfs4_sequence_res seq_res;
910}; 910};
911 911
912 912
913struct nfs4_lookup_arg { 913struct nfs4_lookup_arg {
914 struct nfs4_sequence_args seq_args;
914 const struct nfs_fh * dir_fh; 915 const struct nfs_fh * dir_fh;
915 const struct qstr * name; 916 const struct qstr * name;
916 const u32 * bitmask; 917 const u32 * bitmask;
917 struct nfs4_sequence_args seq_args;
918}; 918};
919 919
920struct nfs4_lookup_res { 920struct nfs4_lookup_res {
921 struct nfs4_sequence_res seq_res;
921 const struct nfs_server * server; 922 const struct nfs_server * server;
922 struct nfs_fattr * fattr; 923 struct nfs_fattr * fattr;
923 struct nfs_fh * fh; 924 struct nfs_fh * fh;
924 struct nfs4_sequence_res seq_res;
925}; 925};
926 926
927struct nfs4_lookup_root_arg { 927struct nfs4_lookup_root_arg {
928 const u32 * bitmask;
929 struct nfs4_sequence_args seq_args; 928 struct nfs4_sequence_args seq_args;
929 const u32 * bitmask;
930}; 930};
931 931
932struct nfs4_pathconf_arg { 932struct nfs4_pathconf_arg {
933 struct nfs4_sequence_args seq_args;
933 const struct nfs_fh * fh; 934 const struct nfs_fh * fh;
934 const u32 * bitmask; 935 const u32 * bitmask;
935 struct nfs4_sequence_args seq_args;
936}; 936};
937 937
938struct nfs4_pathconf_res { 938struct nfs4_pathconf_res {
939 struct nfs_pathconf *pathconf;
940 struct nfs4_sequence_res seq_res; 939 struct nfs4_sequence_res seq_res;
940 struct nfs_pathconf *pathconf;
941}; 941};
942 942
943struct nfs4_readdir_arg { 943struct nfs4_readdir_arg {
944 struct nfs4_sequence_args seq_args;
944 const struct nfs_fh * fh; 945 const struct nfs_fh * fh;
945 u64 cookie; 946 u64 cookie;
946 nfs4_verifier verifier; 947 nfs4_verifier verifier;
@@ -949,21 +950,20 @@ struct nfs4_readdir_arg {
949 unsigned int pgbase; /* zero-copy data */ 950 unsigned int pgbase; /* zero-copy data */
950 const u32 * bitmask; 951 const u32 * bitmask;
951 int plus; 952 int plus;
952 struct nfs4_sequence_args seq_args;
953}; 953};
954 954
955struct nfs4_readdir_res { 955struct nfs4_readdir_res {
956 struct nfs4_sequence_res seq_res;
956 nfs4_verifier verifier; 957 nfs4_verifier verifier;
957 unsigned int pgbase; 958 unsigned int pgbase;
958 struct nfs4_sequence_res seq_res;
959}; 959};
960 960
961struct nfs4_readlink { 961struct nfs4_readlink {
962 struct nfs4_sequence_args seq_args;
962 const struct nfs_fh * fh; 963 const struct nfs_fh * fh;
963 unsigned int pgbase; 964 unsigned int pgbase;
964 unsigned int pglen; /* zero-copy data */ 965 unsigned int pglen; /* zero-copy data */
965 struct page ** pages; /* zero-copy data */ 966 struct page ** pages; /* zero-copy data */
966 struct nfs4_sequence_args seq_args;
967}; 967};
968 968
969struct nfs4_readlink_res { 969struct nfs4_readlink_res {
@@ -989,28 +989,28 @@ struct nfs4_setclientid_res {
989}; 989};
990 990
991struct nfs4_statfs_arg { 991struct nfs4_statfs_arg {
992 struct nfs4_sequence_args seq_args;
992 const struct nfs_fh * fh; 993 const struct nfs_fh * fh;
993 const u32 * bitmask; 994 const u32 * bitmask;
994 struct nfs4_sequence_args seq_args;
995}; 995};
996 996
997struct nfs4_statfs_res { 997struct nfs4_statfs_res {
998 struct nfs_fsstat *fsstat;
999 struct nfs4_sequence_res seq_res; 998 struct nfs4_sequence_res seq_res;
999 struct nfs_fsstat *fsstat;
1000}; 1000};
1001 1001
1002struct nfs4_server_caps_arg { 1002struct nfs4_server_caps_arg {
1003 struct nfs_fh *fhandle;
1004 struct nfs4_sequence_args seq_args; 1003 struct nfs4_sequence_args seq_args;
1004 struct nfs_fh *fhandle;
1005}; 1005};
1006 1006
1007struct nfs4_server_caps_res { 1007struct nfs4_server_caps_res {
1008 struct nfs4_sequence_res seq_res;
1008 u32 attr_bitmask[3]; 1009 u32 attr_bitmask[3];
1009 u32 acl_bitmask; 1010 u32 acl_bitmask;
1010 u32 has_links; 1011 u32 has_links;
1011 u32 has_symlinks; 1012 u32 has_symlinks;
1012 u32 fh_expire_type; 1013 u32 fh_expire_type;
1013 struct nfs4_sequence_res seq_res;
1014}; 1014};
1015 1015
1016#define NFS4_PATHNAME_MAXCOMPONENTS 512 1016#define NFS4_PATHNAME_MAXCOMPONENTS 512
@@ -1036,16 +1036,16 @@ struct nfs4_fs_locations {
1036}; 1036};
1037 1037
1038struct nfs4_fs_locations_arg { 1038struct nfs4_fs_locations_arg {
1039 struct nfs4_sequence_args seq_args;
1039 const struct nfs_fh *dir_fh; 1040 const struct nfs_fh *dir_fh;
1040 const struct qstr *name; 1041 const struct qstr *name;
1041 struct page *page; 1042 struct page *page;
1042 const u32 *bitmask; 1043 const u32 *bitmask;
1043 struct nfs4_sequence_args seq_args;
1044}; 1044};
1045 1045
1046struct nfs4_fs_locations_res { 1046struct nfs4_fs_locations_res {
1047 struct nfs4_fs_locations *fs_locations;
1048 struct nfs4_sequence_res seq_res; 1047 struct nfs4_sequence_res seq_res;
1048 struct nfs4_fs_locations *fs_locations;
1049}; 1049};
1050 1050
1051struct nfs4_secinfo_oid { 1051struct nfs4_secinfo_oid {
@@ -1070,14 +1070,14 @@ struct nfs4_secinfo_flavors {
1070}; 1070};
1071 1071
1072struct nfs4_secinfo_arg { 1072struct nfs4_secinfo_arg {
1073 struct nfs4_sequence_args seq_args;
1073 const struct nfs_fh *dir_fh; 1074 const struct nfs_fh *dir_fh;
1074 const struct qstr *name; 1075 const struct qstr *name;
1075 struct nfs4_sequence_args seq_args;
1076}; 1076};
1077 1077
1078struct nfs4_secinfo_res { 1078struct nfs4_secinfo_res {
1079 struct nfs4_secinfo_flavors *flavors;
1080 struct nfs4_sequence_res seq_res; 1079 struct nfs4_sequence_res seq_res;
1080 struct nfs4_secinfo_flavors *flavors;
1081}; 1081};
1082 1082
1083#endif /* CONFIG_NFS_V4 */ 1083#endif /* CONFIG_NFS_V4 */
@@ -1157,9 +1157,9 @@ struct nfs41_create_session_res {
1157}; 1157};
1158 1158
1159struct nfs41_reclaim_complete_args { 1159struct nfs41_reclaim_complete_args {
1160 struct nfs4_sequence_args seq_args;
1160 /* In the future extend to include curr_fh for use with migration */ 1161 /* In the future extend to include curr_fh for use with migration */
1161 unsigned char one_fs:1; 1162 unsigned char one_fs:1;
1162 struct nfs4_sequence_args seq_args;
1163}; 1163};
1164 1164
1165struct nfs41_reclaim_complete_res { 1165struct nfs41_reclaim_complete_res {
@@ -1169,28 +1169,28 @@ struct nfs41_reclaim_complete_res {
1169#define SECINFO_STYLE_CURRENT_FH 0 1169#define SECINFO_STYLE_CURRENT_FH 0
1170#define SECINFO_STYLE_PARENT 1 1170#define SECINFO_STYLE_PARENT 1
1171struct nfs41_secinfo_no_name_args { 1171struct nfs41_secinfo_no_name_args {
1172 int style;
1173 struct nfs4_sequence_args seq_args; 1172 struct nfs4_sequence_args seq_args;
1173 int style;
1174}; 1174};
1175 1175
1176struct nfs41_test_stateid_args { 1176struct nfs41_test_stateid_args {
1177 nfs4_stateid *stateid;
1178 struct nfs4_sequence_args seq_args; 1177 struct nfs4_sequence_args seq_args;
1178 nfs4_stateid *stateid;
1179}; 1179};
1180 1180
1181struct nfs41_test_stateid_res { 1181struct nfs41_test_stateid_res {
1182 unsigned int status;
1183 struct nfs4_sequence_res seq_res; 1182 struct nfs4_sequence_res seq_res;
1183 unsigned int status;
1184}; 1184};
1185 1185
1186struct nfs41_free_stateid_args { 1186struct nfs41_free_stateid_args {
1187 nfs4_stateid *stateid;
1188 struct nfs4_sequence_args seq_args; 1187 struct nfs4_sequence_args seq_args;
1188 nfs4_stateid *stateid;
1189}; 1189};
1190 1190
1191struct nfs41_free_stateid_res { 1191struct nfs41_free_stateid_res {
1192 unsigned int status;
1193 struct nfs4_sequence_res seq_res; 1192 struct nfs4_sequence_res seq_res;
1193 unsigned int status;
1194}; 1194};
1195 1195
1196#else 1196#else