aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
Diffstat (limited to 'include')
-rw-r--r--include/linux/nfs_page.h2
-rw-r--r--include/linux/nfs_xdr.h16
-rw-r--r--include/linux/sunrpc/xdr.h6
3 files changed, 19 insertions, 5 deletions
diff --git a/include/linux/nfs_page.h b/include/linux/nfs_page.h
index 88d166b555e8..880805774f9f 100644
--- a/include/linux/nfs_page.h
+++ b/include/linux/nfs_page.h
@@ -42,7 +42,7 @@ struct nfs_page {
42 wb_bytes; /* Length of request */ 42 wb_bytes; /* Length of request */
43 struct kref wb_kref; /* reference count */ 43 struct kref wb_kref; /* reference count */
44 unsigned long wb_flags; 44 unsigned long wb_flags;
45 struct nfs_writeverf wb_verf; /* Commit cookie */ 45 struct nfs_write_verifier wb_verf; /* Commit cookie */
46}; 46};
47 47
48struct nfs_pageio_descriptor; 48struct nfs_pageio_descriptor;
diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h
index d3b7c18b18f4..0e181c2320b7 100644
--- a/include/linux/nfs_xdr.h
+++ b/include/linux/nfs_xdr.h
@@ -514,9 +514,13 @@ struct nfs_writeargs {
514 struct nfs4_sequence_args seq_args; 514 struct nfs4_sequence_args seq_args;
515}; 515};
516 516
517struct nfs_write_verifier {
518 char data[8];
519};
520
517struct nfs_writeverf { 521struct nfs_writeverf {
522 struct nfs_write_verifier verifier;
518 enum nfs3_stable_how committed; 523 enum nfs3_stable_how committed;
519 __be32 verifier[2];
520}; 524};
521 525
522struct nfs_writeres { 526struct nfs_writeres {
@@ -1349,6 +1353,8 @@ struct nfs_renamedata {
1349struct nfs_access_entry; 1353struct nfs_access_entry;
1350struct nfs_client; 1354struct nfs_client;
1351struct rpc_timeout; 1355struct rpc_timeout;
1356struct nfs_client_initdata;
1357struct nfs_pageio_descriptor;
1352 1358
1353/* 1359/*
1354 * RPC procedure vector for NFSv2/NFSv3 demuxing 1360 * RPC procedure vector for NFSv2/NFSv3 demuxing
@@ -1402,9 +1408,13 @@ struct nfs_rpc_ops {
1402 int (*set_capabilities)(struct nfs_server *, struct nfs_fh *); 1408 int (*set_capabilities)(struct nfs_server *, struct nfs_fh *);
1403 int (*decode_dirent)(struct xdr_stream *, struct nfs_entry *, int); 1409 int (*decode_dirent)(struct xdr_stream *, struct nfs_entry *, int);
1404 void (*read_setup) (struct nfs_read_data *, struct rpc_message *); 1410 void (*read_setup) (struct nfs_read_data *, struct rpc_message *);
1411 void (*read_pageio_init)(struct nfs_pageio_descriptor *, struct inode *,
1412 const struct nfs_pgio_completion_ops *);
1405 void (*read_rpc_prepare)(struct rpc_task *, struct nfs_read_data *); 1413 void (*read_rpc_prepare)(struct rpc_task *, struct nfs_read_data *);
1406 int (*read_done) (struct rpc_task *, struct nfs_read_data *); 1414 int (*read_done) (struct rpc_task *, struct nfs_read_data *);
1407 void (*write_setup) (struct nfs_write_data *, struct rpc_message *); 1415 void (*write_setup) (struct nfs_write_data *, struct rpc_message *);
1416 void (*write_pageio_init)(struct nfs_pageio_descriptor *, struct inode *, int,
1417 const struct nfs_pgio_completion_ops *);
1408 void (*write_rpc_prepare)(struct rpc_task *, struct nfs_write_data *); 1418 void (*write_rpc_prepare)(struct rpc_task *, struct nfs_write_data *);
1409 int (*write_done) (struct rpc_task *, struct nfs_write_data *); 1419 int (*write_done) (struct rpc_task *, struct nfs_write_data *);
1410 void (*commit_setup) (struct nfs_commit_data *, struct rpc_message *); 1420 void (*commit_setup) (struct nfs_commit_data *, struct rpc_message *);
@@ -1418,9 +1428,13 @@ struct nfs_rpc_ops {
1418 struct nfs_open_context *ctx, 1428 struct nfs_open_context *ctx,
1419 int open_flags, 1429 int open_flags,
1420 struct iattr *iattr); 1430 struct iattr *iattr);
1431 int (*have_delegation)(struct inode *, fmode_t);
1432 int (*return_delegation)(struct inode *);
1433 struct nfs_client *(*alloc_client) (const struct nfs_client_initdata *);
1421 struct nfs_client * 1434 struct nfs_client *
1422 (*init_client) (struct nfs_client *, const struct rpc_timeout *, 1435 (*init_client) (struct nfs_client *, const struct rpc_timeout *,
1423 const char *, rpc_authflavor_t); 1436 const char *, rpc_authflavor_t);
1437 void (*free_client) (struct nfs_client *);
1424}; 1438};
1425 1439
1426/* 1440/*
diff --git a/include/linux/sunrpc/xdr.h b/include/linux/sunrpc/xdr.h
index af70af333546..63988990bd36 100644
--- a/include/linux/sunrpc/xdr.h
+++ b/include/linux/sunrpc/xdr.h
@@ -104,8 +104,6 @@ __be32 *xdr_decode_string_inplace(__be32 *p, char **sp, unsigned int *lenp,
104__be32 *xdr_encode_netobj(__be32 *p, const struct xdr_netobj *); 104__be32 *xdr_encode_netobj(__be32 *p, const struct xdr_netobj *);
105__be32 *xdr_decode_netobj(__be32 *p, struct xdr_netobj *); 105__be32 *xdr_decode_netobj(__be32 *p, struct xdr_netobj *);
106 106
107void xdr_encode_pages(struct xdr_buf *, struct page **, unsigned int,
108 unsigned int);
109void xdr_inline_pages(struct xdr_buf *, unsigned int, 107void xdr_inline_pages(struct xdr_buf *, unsigned int,
110 struct page **, unsigned int, unsigned int); 108 struct page **, unsigned int, unsigned int);
111void xdr_terminate_string(struct xdr_buf *, const u32); 109void xdr_terminate_string(struct xdr_buf *, const u32);
@@ -205,6 +203,7 @@ struct xdr_stream {
205 struct kvec *iov; /* pointer to the current kvec */ 203 struct kvec *iov; /* pointer to the current kvec */
206 struct kvec scratch; /* Scratch buffer */ 204 struct kvec scratch; /* Scratch buffer */
207 struct page **page_ptr; /* pointer to the current page */ 205 struct page **page_ptr; /* pointer to the current page */
206 unsigned int nwords; /* Remaining decode buffer length */
208}; 207};
209 208
210/* 209/*
@@ -217,12 +216,13 @@ extern void xdr_init_encode(struct xdr_stream *xdr, struct xdr_buf *buf, __be32
217extern __be32 *xdr_reserve_space(struct xdr_stream *xdr, size_t nbytes); 216extern __be32 *xdr_reserve_space(struct xdr_stream *xdr, size_t nbytes);
218extern void xdr_write_pages(struct xdr_stream *xdr, struct page **pages, 217extern void xdr_write_pages(struct xdr_stream *xdr, struct page **pages,
219 unsigned int base, unsigned int len); 218 unsigned int base, unsigned int len);
219extern unsigned int xdr_stream_pos(const struct xdr_stream *xdr);
220extern void xdr_init_decode(struct xdr_stream *xdr, struct xdr_buf *buf, __be32 *p); 220extern void xdr_init_decode(struct xdr_stream *xdr, struct xdr_buf *buf, __be32 *p);
221extern void xdr_init_decode_pages(struct xdr_stream *xdr, struct xdr_buf *buf, 221extern void xdr_init_decode_pages(struct xdr_stream *xdr, struct xdr_buf *buf,
222 struct page **pages, unsigned int len); 222 struct page **pages, unsigned int len);
223extern void xdr_set_scratch_buffer(struct xdr_stream *xdr, void *buf, size_t buflen); 223extern void xdr_set_scratch_buffer(struct xdr_stream *xdr, void *buf, size_t buflen);
224extern __be32 *xdr_inline_decode(struct xdr_stream *xdr, size_t nbytes); 224extern __be32 *xdr_inline_decode(struct xdr_stream *xdr, size_t nbytes);
225extern void xdr_read_pages(struct xdr_stream *xdr, unsigned int len); 225extern unsigned int xdr_read_pages(struct xdr_stream *xdr, unsigned int len);
226extern void xdr_enter_page(struct xdr_stream *xdr, unsigned int len); 226extern void xdr_enter_page(struct xdr_stream *xdr, unsigned int len);
227extern int xdr_process_buf(struct xdr_buf *buf, unsigned int offset, unsigned int len, int (*actor)(struct scatterlist *, void *), void *data); 227extern int xdr_process_buf(struct xdr_buf *buf, unsigned int offset, unsigned int len, int (*actor)(struct scatterlist *, void *), void *data);
228 228