aboutsummaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorFred Isaman <iisaman@netapp.com>2012-04-20 14:47:51 -0400
committerTrond Myklebust <Trond.Myklebust@netapp.com>2012-04-27 14:10:38 -0400
commit584aa810b6240d88c28113a90c5029449814a3b5 (patch)
tree694b0942747c9ee7b8f53f21cb81ddc32cc07bbb /include
parent1825a0d08f22463e5a8f4b1636473efd057a3479 (diff)
NFS: rewrite directio read to use async coalesce code
This also has the advantage that it allows directio to use pnfs. Signed-off-by: Fred Isaman <iisaman@netapp.com> Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
Diffstat (limited to 'include')
-rw-r--r--include/linux/nfs_page.h1
-rw-r--r--include/linux/nfs_xdr.h4
2 files changed, 3 insertions, 2 deletions
diff --git a/include/linux/nfs_page.h b/include/linux/nfs_page.h
index 0a5b63f16116..f9ee9eba7f88 100644
--- a/include/linux/nfs_page.h
+++ b/include/linux/nfs_page.h
@@ -68,6 +68,7 @@ struct nfs_pageio_descriptor {
68 const struct rpc_call_ops *pg_rpc_callops; 68 const struct rpc_call_ops *pg_rpc_callops;
69 const struct nfs_pgio_completion_ops *pg_completion_ops; 69 const struct nfs_pgio_completion_ops *pg_completion_ops;
70 struct pnfs_layout_segment *pg_lseg; 70 struct pnfs_layout_segment *pg_lseg;
71 struct nfs_direct_req *pg_dreq;
71}; 72};
72 73
73#define NFS_WBACK_BUSY(req) (test_bit(PG_BUSY,&(req)->wb_flags)) 74#define NFS_WBACK_BUSY(req) (test_bit(PG_BUSY,&(req)->wb_flags))
diff --git a/include/linux/nfs_xdr.h b/include/linux/nfs_xdr.h
index 6fa1d2278c9d..38687b87ca9b 100644
--- a/include/linux/nfs_xdr.h
+++ b/include/linux/nfs_xdr.h
@@ -1208,6 +1208,7 @@ struct nfs_pgio_header {
1208 const struct rpc_call_ops *mds_ops; 1208 const struct rpc_call_ops *mds_ops;
1209 void (*release) (struct nfs_pgio_header *hdr); 1209 void (*release) (struct nfs_pgio_header *hdr);
1210 const struct nfs_pgio_completion_ops *completion_ops; 1210 const struct nfs_pgio_completion_ops *completion_ops;
1211 struct nfs_direct_req *dreq;
1211 spinlock_t lock; 1212 spinlock_t lock;
1212 /* fields protected by lock */ 1213 /* fields protected by lock */
1213 int pnfs_error; 1214 int pnfs_error;
@@ -1221,8 +1222,6 @@ struct nfs_read_header {
1221 struct nfs_read_data rpc_data; 1222 struct nfs_read_data rpc_data;
1222}; 1223};
1223 1224
1224struct nfs_direct_req;
1225
1226struct nfs_write_data { 1225struct nfs_write_data {
1227 struct nfs_pgio_header *header; 1226 struct nfs_pgio_header *header;
1228 struct list_head list; 1227 struct list_head list;
@@ -1264,6 +1263,7 @@ struct nfs_commit_data {
1264 1263
1265struct nfs_pgio_completion_ops { 1264struct nfs_pgio_completion_ops {
1266 void (*error_cleanup)(struct list_head *head); 1265 void (*error_cleanup)(struct list_head *head);
1266 void (*init_hdr)(struct nfs_pgio_header *hdr);
1267 void (*completion)(struct nfs_pgio_header *hdr); 1267 void (*completion)(struct nfs_pgio_header *hdr);
1268}; 1268};
1269 1269