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.h30
1 files changed, 28 insertions, 2 deletions
diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h
index fa1ba78ca2c8..78b101e487ea 100644
--- a/include/linux/nfs_xdr.h
+++ b/include/linux/nfs_xdr.h
@@ -195,8 +195,9 @@ struct nfs4_get_lease_time_res {
195#define PNFS_LAYOUT_MAXSIZE 4096 195#define PNFS_LAYOUT_MAXSIZE 4096
196 196
197struct nfs4_layoutdriver_data { 197struct nfs4_layoutdriver_data {
198 struct page **pages;
199 __u32 pglen;
198 __u32 len; 200 __u32 len;
199 void *buf;
200}; 201};
201 202
202struct pnfs_layout_range { 203struct pnfs_layout_range {
@@ -214,6 +215,7 @@ struct nfs4_layoutget_args {
214 struct nfs_open_context *ctx; 215 struct nfs_open_context *ctx;
215 struct nfs4_sequence_args seq_args; 216 struct nfs4_sequence_args seq_args;
216 nfs4_stateid stateid; 217 nfs4_stateid stateid;
218 struct nfs4_layoutdriver_data layout;
217}; 219};
218 220
219struct nfs4_layoutget_res { 221struct nfs4_layoutget_res {
@@ -221,8 +223,8 @@ struct nfs4_layoutget_res {
221 struct pnfs_layout_range range; 223 struct pnfs_layout_range range;
222 __u32 type; 224 __u32 type;
223 nfs4_stateid stateid; 225 nfs4_stateid stateid;
224 struct nfs4_layoutdriver_data layout;
225 struct nfs4_sequence_res seq_res; 226 struct nfs4_sequence_res seq_res;
227 struct nfs4_layoutdriver_data *layoutp;
226}; 228};
227 229
228struct nfs4_layoutget { 230struct nfs4_layoutget {
@@ -241,6 +243,29 @@ struct nfs4_getdeviceinfo_res {
241 struct nfs4_sequence_res seq_res; 243 struct nfs4_sequence_res seq_res;
242}; 244};
243 245
246struct nfs4_layoutcommit_args {
247 nfs4_stateid stateid;
248 __u64 lastbytewritten;
249 struct inode *inode;
250 const u32 *bitmask;
251 struct nfs4_sequence_args seq_args;
252};
253
254struct nfs4_layoutcommit_res {
255 struct nfs_fattr *fattr;
256 const struct nfs_server *server;
257 struct nfs4_sequence_res seq_res;
258};
259
260struct nfs4_layoutcommit_data {
261 struct rpc_task task;
262 struct nfs_fattr fattr;
263 struct pnfs_layout_segment *lseg;
264 struct rpc_cred *cred;
265 struct nfs4_layoutcommit_args args;
266 struct nfs4_layoutcommit_res res;
267};
268
244/* 269/*
245 * Arguments to the open call. 270 * Arguments to the open call.
246 */ 271 */
@@ -1077,6 +1102,7 @@ struct nfs_write_data {
1077 struct nfs_writeres res; /* result struct */ 1102 struct nfs_writeres res; /* result struct */
1078 struct pnfs_layout_segment *lseg; 1103 struct pnfs_layout_segment *lseg;
1079 struct nfs_client *ds_clp; /* pNFS data server */ 1104 struct nfs_client *ds_clp; /* pNFS data server */
1105 int ds_commit_index;
1080 const struct rpc_call_ops *mds_ops; 1106 const struct rpc_call_ops *mds_ops;
1081 int (*write_done_cb) (struct rpc_task *task, struct nfs_write_data *data); 1107 int (*write_done_cb) (struct rpc_task *task, struct nfs_write_data *data);
1082#ifdef CONFIG_NFS_V4 1108#ifdef CONFIG_NFS_V4