diff options
Diffstat (limited to 'include/linux/nfs_xdr.h')
-rw-r--r-- | include/linux/nfs_xdr.h | 67 |
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 | ||
127 | struct nfs_fsstat { | 128 | struct nfs_fsstat { |
@@ -235,6 +236,17 @@ struct nfs4_layoutget { | |||
235 | gfp_t gfp_flags; | 236 | gfp_t gfp_flags; |
236 | }; | 237 | }; |
237 | 238 | ||
239 | struct nfs4_getdevicelist_args { | ||
240 | const struct nfs_fh *fh; | ||
241 | u32 layoutclass; | ||
242 | struct nfs4_sequence_args seq_args; | ||
243 | }; | ||
244 | |||
245 | struct nfs4_getdevicelist_res { | ||
246 | struct pnfs_devicelist *devlist; | ||
247 | struct nfs4_sequence_res seq_res; | ||
248 | }; | ||
249 | |||
238 | struct nfs4_getdeviceinfo_args { | 250 | struct 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 | ||
262 | struct nfs4_layoutcommit_data { | 275 | struct 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 | ||
271 | struct nfs4_layoutreturn_args { | 284 | struct 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 */ | ||
594 | struct nfs_getaclres { | 611 | struct 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 | ||
781 | struct nfs4_string { | ||
782 | unsigned int len; | ||
783 | char *data; | ||
784 | }; | ||
785 | |||
762 | #ifdef CONFIG_NFS_V4 | 786 | #ifdef CONFIG_NFS_V4 |
763 | 787 | ||
764 | typedef u64 clientid4; | 788 | typedef u64 clientid4; |
@@ -942,18 +966,13 @@ struct nfs4_server_caps_arg { | |||
942 | }; | 966 | }; |
943 | 967 | ||
944 | struct nfs4_server_caps_res { | 968 | struct 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 | ||
952 | struct nfs4_string { | ||
953 | unsigned int len; | ||
954 | char *data; | ||
955 | }; | ||
956 | |||
957 | #define NFS4_PATHNAME_MAXCOMPONENTS 512 | 976 | #define NFS4_PATHNAME_MAXCOMPONENTS 512 |
958 | struct nfs4_pathname { | 977 | struct nfs4_pathname { |
959 | unsigned int ncomponents; | 978 | unsigned int ncomponents; |
@@ -1060,6 +1079,7 @@ struct server_scope { | |||
1060 | struct nfs41_exchange_id_res { | 1079 | struct 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 | ||
1065 | struct nfs41_create_session_args { | 1085 | struct nfs41_create_session_args { |
@@ -1083,6 +1103,34 @@ struct nfs41_reclaim_complete_args { | |||
1083 | struct nfs41_reclaim_complete_res { | 1103 | struct 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 | ||
1109 | struct nfs41_secinfo_no_name_args { | ||
1110 | int style; | ||
1111 | struct nfs4_sequence_args seq_args; | ||
1112 | }; | ||
1113 | |||
1114 | struct nfs41_test_stateid_args { | ||
1115 | nfs4_stateid *stateid; | ||
1116 | struct nfs4_sequence_args seq_args; | ||
1117 | }; | ||
1118 | |||
1119 | struct nfs41_test_stateid_res { | ||
1120 | unsigned int status; | ||
1121 | struct nfs4_sequence_res seq_res; | ||
1122 | }; | ||
1123 | |||
1124 | struct nfs41_free_stateid_args { | ||
1125 | nfs4_stateid *stateid; | ||
1126 | struct nfs4_sequence_args seq_args; | ||
1127 | }; | ||
1128 | |||
1129 | struct 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 | ||
1088 | struct nfs_page; | 1136 | struct 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 *); |