提交 62ae082d 编写于 作者: T Trond Myklebust

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: NTrond Myklebust <Trond.Myklebust@netapp.com>
上级 1e1093c7
...@@ -205,8 +205,8 @@ struct nfs4_get_lease_time_args { ...@@ -205,8 +205,8 @@ struct nfs4_get_lease_time_args {
}; };
struct nfs4_get_lease_time_res { struct nfs4_get_lease_time_res {
struct nfs_fsinfo *lr_fsinfo;
struct nfs4_sequence_res lr_seq_res; struct nfs4_sequence_res lr_seq_res;
struct nfs_fsinfo *lr_fsinfo;
}; };
#define PNFS_LAYOUT_MAXSIZE 4096 #define PNFS_LAYOUT_MAXSIZE 4096
...@@ -224,23 +224,23 @@ struct pnfs_layout_range { ...@@ -224,23 +224,23 @@ struct pnfs_layout_range {
}; };
struct nfs4_layoutget_args { struct nfs4_layoutget_args {
struct nfs4_sequence_args seq_args;
__u32 type; __u32 type;
struct pnfs_layout_range range; struct pnfs_layout_range range;
__u64 minlength; __u64 minlength;
__u32 maxcount; __u32 maxcount;
struct inode *inode; struct inode *inode;
struct nfs_open_context *ctx; struct nfs_open_context *ctx;
struct nfs4_sequence_args seq_args;
nfs4_stateid stateid; nfs4_stateid stateid;
struct nfs4_layoutdriver_data layout; struct nfs4_layoutdriver_data layout;
}; };
struct nfs4_layoutget_res { struct nfs4_layoutget_res {
struct nfs4_sequence_res seq_res;
__u32 return_on_close; __u32 return_on_close;
struct pnfs_layout_range range; struct pnfs_layout_range range;
__u32 type; __u32 type;
nfs4_stateid stateid; nfs4_stateid stateid;
struct nfs4_sequence_res seq_res;
struct nfs4_layoutdriver_data *layoutp; struct nfs4_layoutdriver_data *layoutp;
}; };
...@@ -251,38 +251,38 @@ struct nfs4_layoutget { ...@@ -251,38 +251,38 @@ struct nfs4_layoutget {
}; };
struct nfs4_getdevicelist_args { struct nfs4_getdevicelist_args {
struct nfs4_sequence_args seq_args;
const struct nfs_fh *fh; const struct nfs_fh *fh;
u32 layoutclass; u32 layoutclass;
struct nfs4_sequence_args seq_args;
}; };
struct nfs4_getdevicelist_res { struct nfs4_getdevicelist_res {
struct pnfs_devicelist *devlist;
struct nfs4_sequence_res seq_res; struct nfs4_sequence_res seq_res;
struct pnfs_devicelist *devlist;
}; };
struct nfs4_getdeviceinfo_args { struct nfs4_getdeviceinfo_args {
struct pnfs_device *pdev;
struct nfs4_sequence_args seq_args; struct nfs4_sequence_args seq_args;
struct pnfs_device *pdev;
}; };
struct nfs4_getdeviceinfo_res { struct nfs4_getdeviceinfo_res {
struct pnfs_device *pdev;
struct nfs4_sequence_res seq_res; struct nfs4_sequence_res seq_res;
struct pnfs_device *pdev;
}; };
struct nfs4_layoutcommit_args { struct nfs4_layoutcommit_args {
struct nfs4_sequence_args seq_args;
nfs4_stateid stateid; nfs4_stateid stateid;
__u64 lastbytewritten; __u64 lastbytewritten;
struct inode *inode; struct inode *inode;
const u32 *bitmask; const u32 *bitmask;
struct nfs4_sequence_args seq_args;
}; };
struct nfs4_layoutcommit_res { struct nfs4_layoutcommit_res {
struct nfs4_sequence_res seq_res;
struct nfs_fattr *fattr; struct nfs_fattr *fattr;
const struct nfs_server *server; const struct nfs_server *server;
struct nfs4_sequence_res seq_res;
int status; int status;
}; };
...@@ -296,11 +296,11 @@ struct nfs4_layoutcommit_data { ...@@ -296,11 +296,11 @@ struct nfs4_layoutcommit_data {
}; };
struct nfs4_layoutreturn_args { struct nfs4_layoutreturn_args {
struct nfs4_sequence_args seq_args;
struct pnfs_layout_hdr *layout; struct pnfs_layout_hdr *layout;
struct inode *inode; struct inode *inode;
nfs4_stateid stateid; nfs4_stateid stateid;
__u32 layout_type; __u32 layout_type;
struct nfs4_sequence_args seq_args;
}; };
struct nfs4_layoutreturn_res { struct nfs4_layoutreturn_res {
...@@ -326,6 +326,7 @@ struct stateowner_id { ...@@ -326,6 +326,7 @@ struct stateowner_id {
* Arguments to the open call. * Arguments to the open call.
*/ */
struct nfs_openargs { struct nfs_openargs {
struct nfs4_sequence_args seq_args;
const struct nfs_fh * fh; const struct nfs_fh * fh;
struct nfs_seqid * seqid; struct nfs_seqid * seqid;
int open_flags; int open_flags;
...@@ -346,10 +347,10 @@ struct nfs_openargs { ...@@ -346,10 +347,10 @@ struct nfs_openargs {
const u32 * bitmask; const u32 * bitmask;
const u32 * open_bitmap; const u32 * open_bitmap;
__u32 claim; __u32 claim;
struct nfs4_sequence_args seq_args;
}; };
struct nfs_openres { struct nfs_openres {
struct nfs4_sequence_res seq_res;
nfs4_stateid stateid; nfs4_stateid stateid;
struct nfs_fh fh; struct nfs_fh fh;
struct nfs4_change_info cinfo; struct nfs4_change_info cinfo;
...@@ -364,7 +365,6 @@ struct nfs_openres { ...@@ -364,7 +365,6 @@ struct nfs_openres {
__u32 attrset[NFS4_BITMAP_SIZE]; __u32 attrset[NFS4_BITMAP_SIZE];
struct nfs4_string *owner; struct nfs4_string *owner;
struct nfs4_string *group_owner; struct nfs4_string *group_owner;
struct nfs4_sequence_res seq_res;
__u32 access_request; __u32 access_request;
__u32 access_supported; __u32 access_supported;
__u32 access_result; __u32 access_result;
...@@ -388,20 +388,20 @@ struct nfs_open_confirmres { ...@@ -388,20 +388,20 @@ struct nfs_open_confirmres {
* Arguments to the close call. * Arguments to the close call.
*/ */
struct nfs_closeargs { struct nfs_closeargs {
struct nfs4_sequence_args seq_args;
struct nfs_fh * fh; struct nfs_fh * fh;
nfs4_stateid * stateid; nfs4_stateid * stateid;
struct nfs_seqid * seqid; struct nfs_seqid * seqid;
fmode_t fmode; fmode_t fmode;
const u32 * bitmask; const u32 * bitmask;
struct nfs4_sequence_args seq_args;
}; };
struct nfs_closeres { struct nfs_closeres {
struct nfs4_sequence_res seq_res;
nfs4_stateid stateid; nfs4_stateid stateid;
struct nfs_fattr * fattr; struct nfs_fattr * fattr;
struct nfs_seqid * seqid; struct nfs_seqid * seqid;
const struct nfs_server *server; const struct nfs_server *server;
struct nfs4_sequence_res seq_res;
}; };
/* /*
* * Arguments to the lock,lockt, and locku call. * * Arguments to the lock,lockt, and locku call.
...@@ -413,6 +413,7 @@ struct nfs_lowner { ...@@ -413,6 +413,7 @@ struct nfs_lowner {
}; };
struct nfs_lock_args { struct nfs_lock_args {
struct nfs4_sequence_args seq_args;
struct nfs_fh * fh; struct nfs_fh * fh;
struct file_lock * fl; struct file_lock * fl;
struct nfs_seqid * lock_seqid; struct nfs_seqid * lock_seqid;
...@@ -423,40 +424,39 @@ struct nfs_lock_args { ...@@ -423,40 +424,39 @@ struct nfs_lock_args {
unsigned char block : 1; unsigned char block : 1;
unsigned char reclaim : 1; unsigned char reclaim : 1;
unsigned char new_lock_owner : 1; unsigned char new_lock_owner : 1;
struct nfs4_sequence_args seq_args;
}; };
struct nfs_lock_res { struct nfs_lock_res {
struct nfs4_sequence_res seq_res;
nfs4_stateid stateid; nfs4_stateid stateid;
struct nfs_seqid * lock_seqid; struct nfs_seqid * lock_seqid;
struct nfs_seqid * open_seqid; struct nfs_seqid * open_seqid;
struct nfs4_sequence_res seq_res;
}; };
struct nfs_locku_args { struct nfs_locku_args {
struct nfs4_sequence_args seq_args;
struct nfs_fh * fh; struct nfs_fh * fh;
struct file_lock * fl; struct file_lock * fl;
struct nfs_seqid * seqid; struct nfs_seqid * seqid;
nfs4_stateid * stateid; nfs4_stateid * stateid;
struct nfs4_sequence_args seq_args;
}; };
struct nfs_locku_res { struct nfs_locku_res {
struct nfs4_sequence_res seq_res;
nfs4_stateid stateid; nfs4_stateid stateid;
struct nfs_seqid * seqid; struct nfs_seqid * seqid;
struct nfs4_sequence_res seq_res;
}; };
struct nfs_lockt_args { struct nfs_lockt_args {
struct nfs4_sequence_args seq_args;
struct nfs_fh * fh; struct nfs_fh * fh;
struct file_lock * fl; struct file_lock * fl;
struct nfs_lowner lock_owner; struct nfs_lowner lock_owner;
struct nfs4_sequence_args seq_args;
}; };
struct nfs_lockt_res { struct nfs_lockt_res {
struct file_lock * denied; /* LOCK, LOCKT failed */
struct nfs4_sequence_res seq_res; struct nfs4_sequence_res seq_res;
struct file_lock * denied; /* LOCK, LOCKT failed */
}; };
struct nfs_release_lockowner_args { struct nfs_release_lockowner_args {
...@@ -464,22 +464,23 @@ struct nfs_release_lockowner_args { ...@@ -464,22 +464,23 @@ struct nfs_release_lockowner_args {
}; };
struct nfs4_delegreturnargs { struct nfs4_delegreturnargs {
struct nfs4_sequence_args seq_args;
const struct nfs_fh *fhandle; const struct nfs_fh *fhandle;
const nfs4_stateid *stateid; const nfs4_stateid *stateid;
const u32 * bitmask; const u32 * bitmask;
struct nfs4_sequence_args seq_args;
}; };
struct nfs4_delegreturnres { struct nfs4_delegreturnres {
struct nfs4_sequence_res seq_res;
struct nfs_fattr * fattr; struct nfs_fattr * fattr;
const struct nfs_server *server; const struct nfs_server *server;
struct nfs4_sequence_res seq_res;
}; };
/* /*
* Arguments to the read call. * Arguments to the read call.
*/ */
struct nfs_readargs { struct nfs_readargs {
struct nfs4_sequence_args seq_args;
struct nfs_fh * fh; struct nfs_fh * fh;
struct nfs_open_context *context; struct nfs_open_context *context;
struct nfs_lock_context *lock_context; struct nfs_lock_context *lock_context;
...@@ -487,20 +488,20 @@ struct nfs_readargs { ...@@ -487,20 +488,20 @@ struct nfs_readargs {
__u32 count; __u32 count;
unsigned int pgbase; unsigned int pgbase;
struct page ** pages; struct page ** pages;
struct nfs4_sequence_args seq_args;
}; };
struct nfs_readres { struct nfs_readres {
struct nfs4_sequence_res seq_res;
struct nfs_fattr * fattr; struct nfs_fattr * fattr;
__u32 count; __u32 count;
int eof; int eof;
struct nfs4_sequence_res seq_res;
}; };
/* /*
* Arguments to the write call. * Arguments to the write call.
*/ */
struct nfs_writeargs { struct nfs_writeargs {
struct nfs4_sequence_args seq_args;
struct nfs_fh * fh; struct nfs_fh * fh;
struct nfs_open_context *context; struct nfs_open_context *context;
struct nfs_lock_context *lock_context; struct nfs_lock_context *lock_context;
...@@ -510,7 +511,6 @@ struct nfs_writeargs { ...@@ -510,7 +511,6 @@ struct nfs_writeargs {
unsigned int pgbase; unsigned int pgbase;
struct page ** pages; struct page ** pages;
const u32 * bitmask; const u32 * bitmask;
struct nfs4_sequence_args seq_args;
}; };
struct nfs_write_verifier { struct nfs_write_verifier {
...@@ -523,65 +523,65 @@ struct nfs_writeverf { ...@@ -523,65 +523,65 @@ struct nfs_writeverf {
}; };
struct nfs_writeres { struct nfs_writeres {
struct nfs4_sequence_res seq_res;
struct nfs_fattr * fattr; struct nfs_fattr * fattr;
struct nfs_writeverf * verf; struct nfs_writeverf * verf;
__u32 count; __u32 count;
const struct nfs_server *server; const struct nfs_server *server;
struct nfs4_sequence_res seq_res;
}; };
/* /*
* Arguments to the commit call. * Arguments to the commit call.
*/ */
struct nfs_commitargs { struct nfs_commitargs {
struct nfs4_sequence_args seq_args;
struct nfs_fh *fh; struct nfs_fh *fh;
__u64 offset; __u64 offset;
__u32 count; __u32 count;
const u32 *bitmask; const u32 *bitmask;
struct nfs4_sequence_args seq_args;
}; };
struct nfs_commitres { struct nfs_commitres {
struct nfs4_sequence_res seq_res;
struct nfs_fattr *fattr; struct nfs_fattr *fattr;
struct nfs_writeverf *verf; struct nfs_writeverf *verf;
const struct nfs_server *server; const struct nfs_server *server;
struct nfs4_sequence_res seq_res;
}; };
/* /*
* Common arguments to the unlink call * Common arguments to the unlink call
*/ */
struct nfs_removeargs { struct nfs_removeargs {
struct nfs4_sequence_args seq_args;
const struct nfs_fh *fh; const struct nfs_fh *fh;
struct qstr name; struct qstr name;
struct nfs4_sequence_args seq_args;
}; };
struct nfs_removeres { struct nfs_removeres {
struct nfs4_sequence_res seq_res;
const struct nfs_server *server; const struct nfs_server *server;
struct nfs_fattr *dir_attr; struct nfs_fattr *dir_attr;
struct nfs4_change_info cinfo; struct nfs4_change_info cinfo;
struct nfs4_sequence_res seq_res;
}; };
/* /*
* Common arguments to the rename call * Common arguments to the rename call
*/ */
struct nfs_renameargs { struct nfs_renameargs {
struct nfs4_sequence_args seq_args;
const struct nfs_fh *old_dir; const struct nfs_fh *old_dir;
const struct nfs_fh *new_dir; const struct nfs_fh *new_dir;
const struct qstr *old_name; const struct qstr *old_name;
const struct qstr *new_name; const struct qstr *new_name;
struct nfs4_sequence_args seq_args;
}; };
struct nfs_renameres { struct nfs_renameres {
struct nfs4_sequence_res seq_res;
const struct nfs_server *server; const struct nfs_server *server;
struct nfs4_change_info old_cinfo; struct nfs4_change_info old_cinfo;
struct nfs_fattr *old_fattr; struct nfs_fattr *old_fattr;
struct nfs4_change_info new_cinfo; struct nfs4_change_info new_cinfo;
struct nfs_fattr *new_fattr; struct nfs_fattr *new_fattr;
struct nfs4_sequence_res seq_res;
}; };
/* /*
...@@ -622,20 +622,20 @@ struct nfs_createargs { ...@@ -622,20 +622,20 @@ struct nfs_createargs {
}; };
struct nfs_setattrargs { struct nfs_setattrargs {
struct nfs4_sequence_args seq_args;
struct nfs_fh * fh; struct nfs_fh * fh;
nfs4_stateid stateid; nfs4_stateid stateid;
struct iattr * iap; struct iattr * iap;
const struct nfs_server * server; /* Needed for name mapping */ const struct nfs_server * server; /* Needed for name mapping */
const u32 * bitmask; const u32 * bitmask;
struct nfs4_sequence_args seq_args;
}; };
struct nfs_setaclargs { struct nfs_setaclargs {
struct nfs4_sequence_args seq_args;
struct nfs_fh * fh; struct nfs_fh * fh;
size_t acl_len; size_t acl_len;
unsigned int acl_pgbase; unsigned int acl_pgbase;
struct page ** acl_pages; struct page ** acl_pages;
struct nfs4_sequence_args seq_args;
}; };
struct nfs_setaclres { struct nfs_setaclres {
...@@ -643,27 +643,27 @@ struct nfs_setaclres { ...@@ -643,27 +643,27 @@ struct nfs_setaclres {
}; };
struct nfs_getaclargs { struct nfs_getaclargs {
struct nfs4_sequence_args seq_args;
struct nfs_fh * fh; struct nfs_fh * fh;
size_t acl_len; size_t acl_len;
unsigned int acl_pgbase; unsigned int acl_pgbase;
struct page ** acl_pages; struct page ** acl_pages;
struct nfs4_sequence_args seq_args;
}; };
/* getxattr ACL interface flags */ /* getxattr ACL interface flags */
#define NFS4_ACL_TRUNC 0x0001 /* ACL was truncated */ #define NFS4_ACL_TRUNC 0x0001 /* ACL was truncated */
struct nfs_getaclres { struct nfs_getaclres {
struct nfs4_sequence_res seq_res;
size_t acl_len; size_t acl_len;
size_t acl_data_offset; size_t acl_data_offset;
int acl_flags; int acl_flags;
struct page * acl_scratch; struct page * acl_scratch;
struct nfs4_sequence_res seq_res;
}; };
struct nfs_setattrres { struct nfs_setattrres {
struct nfs4_sequence_res seq_res;
struct nfs_fattr * fattr; struct nfs_fattr * fattr;
const struct nfs_server * server; const struct nfs_server * server;
struct nfs4_sequence_res seq_res;
}; };
struct nfs_linkargs { struct nfs_linkargs {
...@@ -828,21 +828,22 @@ struct nfs3_getaclres { ...@@ -828,21 +828,22 @@ struct nfs3_getaclres {
typedef u64 clientid4; typedef u64 clientid4;
struct nfs4_accessargs { struct nfs4_accessargs {
struct nfs4_sequence_args seq_args;
const struct nfs_fh * fh; const struct nfs_fh * fh;
const u32 * bitmask; const u32 * bitmask;
u32 access; u32 access;
struct nfs4_sequence_args seq_args;
}; };
struct nfs4_accessres { struct nfs4_accessres {
struct nfs4_sequence_res seq_res;
const struct nfs_server * server; const struct nfs_server * server;
struct nfs_fattr * fattr; struct nfs_fattr * fattr;
u32 supported; u32 supported;
u32 access; u32 access;
struct nfs4_sequence_res seq_res;
}; };
struct nfs4_create_arg { struct nfs4_create_arg {
struct nfs4_sequence_args seq_args;
u32 ftype; u32 ftype;
union { union {
struct { struct {
...@@ -859,88 +860,88 @@ struct nfs4_create_arg { ...@@ -859,88 +860,88 @@ struct nfs4_create_arg {
const struct iattr * attrs; const struct iattr * attrs;
const struct nfs_fh * dir_fh; const struct nfs_fh * dir_fh;
const u32 * bitmask; const u32 * bitmask;
struct nfs4_sequence_args seq_args;
}; };
struct nfs4_create_res { struct nfs4_create_res {
struct nfs4_sequence_res seq_res;
const struct nfs_server * server; const struct nfs_server * server;
struct nfs_fh * fh; struct nfs_fh * fh;
struct nfs_fattr * fattr; struct nfs_fattr * fattr;
struct nfs4_change_info dir_cinfo; struct nfs4_change_info dir_cinfo;
struct nfs4_sequence_res seq_res;
}; };
struct nfs4_fsinfo_arg { struct nfs4_fsinfo_arg {
struct nfs4_sequence_args seq_args;
const struct nfs_fh * fh; const struct nfs_fh * fh;
const u32 * bitmask; const u32 * bitmask;
struct nfs4_sequence_args seq_args;
}; };
struct nfs4_fsinfo_res { struct nfs4_fsinfo_res {
struct nfs_fsinfo *fsinfo;
struct nfs4_sequence_res seq_res; struct nfs4_sequence_res seq_res;
struct nfs_fsinfo *fsinfo;
}; };
struct nfs4_getattr_arg { struct nfs4_getattr_arg {
struct nfs4_sequence_args seq_args;
const struct nfs_fh * fh; const struct nfs_fh * fh;
const u32 * bitmask; const u32 * bitmask;
struct nfs4_sequence_args seq_args;
}; };
struct nfs4_getattr_res { struct nfs4_getattr_res {
struct nfs4_sequence_res seq_res;
const struct nfs_server * server; const struct nfs_server * server;
struct nfs_fattr * fattr; struct nfs_fattr * fattr;
struct nfs4_sequence_res seq_res;
}; };
struct nfs4_link_arg { struct nfs4_link_arg {
struct nfs4_sequence_args seq_args;
const struct nfs_fh * fh; const struct nfs_fh * fh;
const struct nfs_fh * dir_fh; const struct nfs_fh * dir_fh;
const struct qstr * name; const struct qstr * name;
const u32 * bitmask; const u32 * bitmask;
struct nfs4_sequence_args seq_args;
}; };
struct nfs4_link_res { struct nfs4_link_res {
struct nfs4_sequence_res seq_res;
const struct nfs_server * server; const struct nfs_server * server;
struct nfs_fattr * fattr; struct nfs_fattr * fattr;
struct nfs4_change_info cinfo; struct nfs4_change_info cinfo;
struct nfs_fattr * dir_attr; struct nfs_fattr * dir_attr;
struct nfs4_sequence_res seq_res;
}; };
struct nfs4_lookup_arg { struct nfs4_lookup_arg {
struct nfs4_sequence_args seq_args;
const struct nfs_fh * dir_fh; const struct nfs_fh * dir_fh;
const struct qstr * name; const struct qstr * name;
const u32 * bitmask; const u32 * bitmask;
struct nfs4_sequence_args seq_args;
}; };
struct nfs4_lookup_res { struct nfs4_lookup_res {
struct nfs4_sequence_res seq_res;
const struct nfs_server * server; const struct nfs_server * server;
struct nfs_fattr * fattr; struct nfs_fattr * fattr;
struct nfs_fh * fh; struct nfs_fh * fh;
struct nfs4_sequence_res seq_res;
}; };
struct nfs4_lookup_root_arg { struct nfs4_lookup_root_arg {
const u32 * bitmask;
struct nfs4_sequence_args seq_args; struct nfs4_sequence_args seq_args;
const u32 * bitmask;
}; };
struct nfs4_pathconf_arg { struct nfs4_pathconf_arg {
struct nfs4_sequence_args seq_args;
const struct nfs_fh * fh; const struct nfs_fh * fh;
const u32 * bitmask; const u32 * bitmask;
struct nfs4_sequence_args seq_args;
}; };
struct nfs4_pathconf_res { struct nfs4_pathconf_res {
struct nfs_pathconf *pathconf;
struct nfs4_sequence_res seq_res; struct nfs4_sequence_res seq_res;
struct nfs_pathconf *pathconf;
}; };
struct nfs4_readdir_arg { struct nfs4_readdir_arg {
struct nfs4_sequence_args seq_args;
const struct nfs_fh * fh; const struct nfs_fh * fh;
u64 cookie; u64 cookie;
nfs4_verifier verifier; nfs4_verifier verifier;
...@@ -949,21 +950,20 @@ struct nfs4_readdir_arg { ...@@ -949,21 +950,20 @@ struct nfs4_readdir_arg {
unsigned int pgbase; /* zero-copy data */ unsigned int pgbase; /* zero-copy data */
const u32 * bitmask; const u32 * bitmask;
int plus; int plus;
struct nfs4_sequence_args seq_args;
}; };
struct nfs4_readdir_res { struct nfs4_readdir_res {
struct nfs4_sequence_res seq_res;
nfs4_verifier verifier; nfs4_verifier verifier;
unsigned int pgbase; unsigned int pgbase;
struct nfs4_sequence_res seq_res;
}; };
struct nfs4_readlink { struct nfs4_readlink {
struct nfs4_sequence_args seq_args;
const struct nfs_fh * fh; const struct nfs_fh * fh;
unsigned int pgbase; unsigned int pgbase;
unsigned int pglen; /* zero-copy data */ unsigned int pglen; /* zero-copy data */
struct page ** pages; /* zero-copy data */ struct page ** pages; /* zero-copy data */
struct nfs4_sequence_args seq_args;
}; };
struct nfs4_readlink_res { struct nfs4_readlink_res {
...@@ -989,28 +989,28 @@ struct nfs4_setclientid_res { ...@@ -989,28 +989,28 @@ struct nfs4_setclientid_res {
}; };
struct nfs4_statfs_arg { struct nfs4_statfs_arg {
struct nfs4_sequence_args seq_args;
const struct nfs_fh * fh; const struct nfs_fh * fh;
const u32 * bitmask; const u32 * bitmask;
struct nfs4_sequence_args seq_args;
}; };
struct nfs4_statfs_res { struct nfs4_statfs_res {
struct nfs_fsstat *fsstat;
struct nfs4_sequence_res seq_res; struct nfs4_sequence_res seq_res;
struct nfs_fsstat *fsstat;
}; };
struct nfs4_server_caps_arg { struct nfs4_server_caps_arg {
struct nfs_fh *fhandle;
struct nfs4_sequence_args seq_args; struct nfs4_sequence_args seq_args;
struct nfs_fh *fhandle;
}; };
struct nfs4_server_caps_res { struct nfs4_server_caps_res {
struct nfs4_sequence_res seq_res;
u32 attr_bitmask[3]; u32 attr_bitmask[3];
u32 acl_bitmask; u32 acl_bitmask;
u32 has_links; u32 has_links;
u32 has_symlinks; u32 has_symlinks;
u32 fh_expire_type; u32 fh_expire_type;
struct nfs4_sequence_res seq_res;
}; };
#define NFS4_PATHNAME_MAXCOMPONENTS 512 #define NFS4_PATHNAME_MAXCOMPONENTS 512
...@@ -1036,16 +1036,16 @@ struct nfs4_fs_locations { ...@@ -1036,16 +1036,16 @@ struct nfs4_fs_locations {
}; };
struct nfs4_fs_locations_arg { struct nfs4_fs_locations_arg {
struct nfs4_sequence_args seq_args;
const struct nfs_fh *dir_fh; const struct nfs_fh *dir_fh;
const struct qstr *name; const struct qstr *name;
struct page *page; struct page *page;
const u32 *bitmask; const u32 *bitmask;
struct nfs4_sequence_args seq_args;
}; };
struct nfs4_fs_locations_res { struct nfs4_fs_locations_res {
struct nfs4_fs_locations *fs_locations;
struct nfs4_sequence_res seq_res; struct nfs4_sequence_res seq_res;
struct nfs4_fs_locations *fs_locations;
}; };
struct nfs4_secinfo_oid { struct nfs4_secinfo_oid {
...@@ -1070,14 +1070,14 @@ struct nfs4_secinfo_flavors { ...@@ -1070,14 +1070,14 @@ struct nfs4_secinfo_flavors {
}; };
struct nfs4_secinfo_arg { struct nfs4_secinfo_arg {
struct nfs4_sequence_args seq_args;
const struct nfs_fh *dir_fh; const struct nfs_fh *dir_fh;
const struct qstr *name; const struct qstr *name;
struct nfs4_sequence_args seq_args;
}; };
struct nfs4_secinfo_res { struct nfs4_secinfo_res {
struct nfs4_secinfo_flavors *flavors;
struct nfs4_sequence_res seq_res; struct nfs4_sequence_res seq_res;
struct nfs4_secinfo_flavors *flavors;
}; };
#endif /* CONFIG_NFS_V4 */ #endif /* CONFIG_NFS_V4 */
...@@ -1157,9 +1157,9 @@ struct nfs41_create_session_res { ...@@ -1157,9 +1157,9 @@ struct nfs41_create_session_res {
}; };
struct nfs41_reclaim_complete_args { struct nfs41_reclaim_complete_args {
struct nfs4_sequence_args seq_args;
/* In the future extend to include curr_fh for use with migration */ /* In the future extend to include curr_fh for use with migration */
unsigned char one_fs:1; unsigned char one_fs:1;
struct nfs4_sequence_args seq_args;
}; };
struct nfs41_reclaim_complete_res { struct nfs41_reclaim_complete_res {
...@@ -1169,28 +1169,28 @@ struct nfs41_reclaim_complete_res { ...@@ -1169,28 +1169,28 @@ struct nfs41_reclaim_complete_res {
#define SECINFO_STYLE_CURRENT_FH 0 #define SECINFO_STYLE_CURRENT_FH 0
#define SECINFO_STYLE_PARENT 1 #define SECINFO_STYLE_PARENT 1
struct nfs41_secinfo_no_name_args { struct nfs41_secinfo_no_name_args {
int style;
struct nfs4_sequence_args seq_args; struct nfs4_sequence_args seq_args;
int style;
}; };
struct nfs41_test_stateid_args { struct nfs41_test_stateid_args {
nfs4_stateid *stateid;
struct nfs4_sequence_args seq_args; struct nfs4_sequence_args seq_args;
nfs4_stateid *stateid;
}; };
struct nfs41_test_stateid_res { struct nfs41_test_stateid_res {
unsigned int status;
struct nfs4_sequence_res seq_res; struct nfs4_sequence_res seq_res;
unsigned int status;
}; };
struct nfs41_free_stateid_args { struct nfs41_free_stateid_args {
nfs4_stateid *stateid;
struct nfs4_sequence_args seq_args; struct nfs4_sequence_args seq_args;
nfs4_stateid *stateid;
}; };
struct nfs41_free_stateid_res { struct nfs41_free_stateid_res {
unsigned int status;
struct nfs4_sequence_res seq_res; struct nfs4_sequence_res seq_res;
unsigned int status;
}; };
#else #else
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册