aboutsummaryrefslogtreecommitdiffstats
path: root/include/linux/nfs_xdr.h
diff options
context:
space:
mode:
Diffstat (limited to 'include/linux/nfs_xdr.h')
-rw-r--r--include/linux/nfs_xdr.h67
1 files changed, 59 insertions, 8 deletions
diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h
index 00848d86ffb..5c0e10d7da7 100644
--- a/include/linux/nfs_xdr.h
+++ b/include/linux/nfs_xdr.h
@@ -122,6 +122,7 @@ struct nfs_fsinfo {
122 struct timespec time_delta; /* server time granularity */ 122 struct timespec time_delta; /* server time granularity */
123 __u32 lease_time; /* in seconds */ 123 __u32 lease_time; /* in seconds */
124 __u32 layouttype; /* supported pnfs layout driver */ 124 __u32 layouttype; /* supported pnfs layout driver */
125 __u32 blksize; /* preferred pnfs io block size */
125}; 126};
126 127
127struct nfs_fsstat { 128struct nfs_fsstat {
@@ -235,6 +236,17 @@ struct nfs4_layoutget {
235 gfp_t gfp_flags; 236 gfp_t gfp_flags;
236}; 237};
237 238
239struct nfs4_getdevicelist_args {
240 const struct nfs_fh *fh;
241 u32 layoutclass;
242 struct nfs4_sequence_args seq_args;
243};
244
245struct nfs4_getdevicelist_res {
246 struct pnfs_devicelist *devlist;
247 struct nfs4_sequence_res seq_res;
248};
249
238struct nfs4_getdeviceinfo_args { 250struct nfs4_getdeviceinfo_args {
239 struct pnfs_device *pdev; 251 struct pnfs_device *pdev;
240 struct nfs4_sequence_args seq_args; 252 struct nfs4_sequence_args seq_args;
@@ -257,21 +269,23 @@ struct nfs4_layoutcommit_res {
257 struct nfs_fattr *fattr; 269 struct nfs_fattr *fattr;
258 const struct nfs_server *server; 270 const struct nfs_server *server;
259 struct nfs4_sequence_res seq_res; 271 struct nfs4_sequence_res seq_res;
272 int status;
260}; 273};
261 274
262struct nfs4_layoutcommit_data { 275struct nfs4_layoutcommit_data {
263 struct rpc_task task; 276 struct rpc_task task;
264 struct nfs_fattr fattr; 277 struct nfs_fattr fattr;
265 struct pnfs_layout_segment *lseg; 278 struct list_head lseg_list;
266 struct rpc_cred *cred; 279 struct rpc_cred *cred;
267 struct nfs4_layoutcommit_args args; 280 struct nfs4_layoutcommit_args args;
268 struct nfs4_layoutcommit_res res; 281 struct nfs4_layoutcommit_res res;
269}; 282};
270 283
271struct nfs4_layoutreturn_args { 284struct nfs4_layoutreturn_args {
272 __u32 layout_type; 285 struct pnfs_layout_hdr *layout;
273 struct inode *inode; 286 struct inode *inode;
274 nfs4_stateid stateid; 287 nfs4_stateid stateid;
288 __u32 layout_type;
275 struct nfs4_sequence_args seq_args; 289 struct nfs4_sequence_args seq_args;
276}; 290};
277 291
@@ -588,11 +602,16 @@ struct nfs_getaclargs {
588 size_t acl_len; 602 size_t acl_len;
589 unsigned int acl_pgbase; 603 unsigned int acl_pgbase;
590 struct page ** acl_pages; 604 struct page ** acl_pages;
605 struct page * acl_scratch;
591 struct nfs4_sequence_args seq_args; 606 struct nfs4_sequence_args seq_args;
592}; 607};
593 608
609/* getxattr ACL interface flags */
610#define NFS4_ACL_LEN_REQUEST 0x0001 /* zero length getxattr buffer */
594struct nfs_getaclres { 611struct nfs_getaclres {
595 size_t acl_len; 612 size_t acl_len;
613 size_t acl_data_offset;
614 int acl_flags;
596 struct nfs4_sequence_res seq_res; 615 struct nfs4_sequence_res seq_res;
597}; 616};
598 617
@@ -759,6 +778,11 @@ struct nfs3_getaclres {
759 struct posix_acl * acl_default; 778 struct posix_acl * acl_default;
760}; 779};
761 780
781struct nfs4_string {
782 unsigned int len;
783 char *data;
784};
785
762#ifdef CONFIG_NFS_V4 786#ifdef CONFIG_NFS_V4
763 787
764typedef u64 clientid4; 788typedef u64 clientid4;
@@ -942,18 +966,13 @@ struct nfs4_server_caps_arg {
942}; 966};
943 967
944struct nfs4_server_caps_res { 968struct nfs4_server_caps_res {
945 u32 attr_bitmask[2]; 969 u32 attr_bitmask[3];
946 u32 acl_bitmask; 970 u32 acl_bitmask;
947 u32 has_links; 971 u32 has_links;
948 u32 has_symlinks; 972 u32 has_symlinks;
949 struct nfs4_sequence_res seq_res; 973 struct nfs4_sequence_res seq_res;
950}; 974};
951 975
952struct nfs4_string {
953 unsigned int len;
954 char *data;
955};
956
957#define NFS4_PATHNAME_MAXCOMPONENTS 512 976#define NFS4_PATHNAME_MAXCOMPONENTS 512
958struct nfs4_pathname { 977struct nfs4_pathname {
959 unsigned int ncomponents; 978 unsigned int ncomponents;
@@ -1060,6 +1079,7 @@ struct server_scope {
1060struct nfs41_exchange_id_res { 1079struct nfs41_exchange_id_res {
1061 struct nfs_client *client; 1080 struct nfs_client *client;
1062 u32 flags; 1081 u32 flags;
1082 struct server_scope *server_scope;
1063}; 1083};
1064 1084
1065struct nfs41_create_session_args { 1085struct nfs41_create_session_args {
@@ -1083,6 +1103,34 @@ struct nfs41_reclaim_complete_args {
1083struct nfs41_reclaim_complete_res { 1103struct nfs41_reclaim_complete_res {
1084 struct nfs4_sequence_res seq_res; 1104 struct nfs4_sequence_res seq_res;
1085}; 1105};
1106
1107#define SECINFO_STYLE_CURRENT_FH 0
1108#define SECINFO_STYLE_PARENT 1
1109struct nfs41_secinfo_no_name_args {
1110 int style;
1111 struct nfs4_sequence_args seq_args;
1112};
1113
1114struct nfs41_test_stateid_args {
1115 nfs4_stateid *stateid;
1116 struct nfs4_sequence_args seq_args;
1117};
1118
1119struct nfs41_test_stateid_res {
1120 unsigned int status;
1121 struct nfs4_sequence_res seq_res;
1122};
1123
1124struct nfs41_free_stateid_args {
1125 nfs4_stateid *stateid;
1126 struct nfs4_sequence_args seq_args;
1127};
1128
1129struct nfs41_free_stateid_res {
1130 unsigned int status;
1131 struct nfs4_sequence_res seq_res;
1132};
1133
1086#endif /* CONFIG_NFS_V4_1 */ 1134#endif /* CONFIG_NFS_V4_1 */
1087 1135
1088struct nfs_page; 1136struct nfs_page;
@@ -1096,6 +1144,7 @@ struct nfs_read_data {
1096 struct rpc_cred *cred; 1144 struct rpc_cred *cred;
1097 struct nfs_fattr fattr; /* fattr storage */ 1145 struct nfs_fattr fattr; /* fattr storage */
1098 struct list_head pages; /* Coalesced read requests */ 1146 struct list_head pages; /* Coalesced read requests */
1147 struct list_head list; /* lists of struct nfs_read_data */
1099 struct nfs_page *req; /* multi ops per nfs_page */ 1148 struct nfs_page *req; /* multi ops per nfs_page */
1100 struct page **pagevec; 1149 struct page **pagevec;
1101 unsigned int npages; /* Max length of pagevec */ 1150 unsigned int npages; /* Max length of pagevec */
@@ -1119,6 +1168,7 @@ struct nfs_write_data {
1119 struct nfs_fattr fattr; 1168 struct nfs_fattr fattr;
1120 struct nfs_writeverf verf; 1169 struct nfs_writeverf verf;
1121 struct list_head pages; /* Coalesced requests we wish to flush */ 1170 struct list_head pages; /* Coalesced requests we wish to flush */
1171 struct list_head list; /* lists of struct nfs_write_data */
1122 struct nfs_page *req; /* multi ops per nfs_page */ 1172 struct nfs_page *req; /* multi ops per nfs_page */
1123 struct page **pagevec; 1173 struct page **pagevec;
1124 unsigned int npages; /* Max length of pagevec */ 1174 unsigned int npages; /* Max length of pagevec */
@@ -1149,6 +1199,7 @@ struct nfs_rpc_ops {
1149 const struct dentry_operations *dentry_ops; 1199 const struct dentry_operations *dentry_ops;
1150 const struct inode_operations *dir_inode_ops; 1200 const struct inode_operations *dir_inode_ops;
1151 const struct inode_operations *file_inode_ops; 1201 const struct inode_operations *file_inode_ops;
1202 const struct file_operations *file_ops;
1152 1203
1153 int (*getroot) (struct nfs_server *, struct nfs_fh *, 1204 int (*getroot) (struct nfs_server *, struct nfs_fh *,
1154 struct nfs_fsinfo *); 1205 struct nfs_fsinfo *);