diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2014-06-10 18:02:42 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2014-06-10 18:02:42 -0400 |
commit | d1e1cda862c16252087374ac75949b0e89a5717e (patch) | |
tree | 544ce467bed23638949a1991b4f7b00e7472baa4 /fs/nfs/pnfs.h | |
parent | 07888238f55056605cd23aa4ea3ca97d5e15938f (diff) | |
parent | a914722f333b3359d2f4f12919380a334176bb89 (diff) |
Merge tag 'nfs-for-3.16-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs
Pull NFS client updates from Trond Myklebust:
"Highlights include:
- massive cleanup of the NFS read/write code by Anna and Dros
- support multiple NFS read/write requests per page in order to deal
with non-page aligned pNFS striping. Also cleans up the r/wsize <
page size code nicely.
- stable fix for ensuring inode is declared uptodate only after all
the attributes have been checked.
- stable fix for a kernel Oops when remounting
- NFS over RDMA client fixes
- move the pNFS files layout driver into its own subdirectory"
* tag 'nfs-for-3.16-1' of git://git.linux-nfs.org/projects/trondmy/linux-nfs: (79 commits)
NFS: populate ->net in mount data when remounting
pnfs: fix lockup caused by pnfs_generic_pg_test
NFSv4.1: Fix typo in dprintk
NFSv4.1: Comment is now wrong and redundant to code
NFS: Use raw_write_seqcount_begin/end int nfs4_reclaim_open_state
xprtrdma: Disconnect on registration failure
xprtrdma: Remove BUG_ON() call sites
xprtrdma: Avoid deadlock when credit window is reset
SUNRPC: Move congestion window constants to header file
xprtrdma: Reset connection timeout after successful reconnect
xprtrdma: Use macros for reconnection timeout constants
xprtrdma: Allocate missing pagelist
xprtrdma: Remove Tavor MTU setting
xprtrdma: Ensure ia->ri_id->qp is not NULL when reconnecting
xprtrdma: Reduce the number of hardway buffer allocations
xprtrdma: Limit work done by completion handler
xprtrmda: Reduce calls to ib_poll_cq() in completion handlers
xprtrmda: Reduce lock contention in completion handlers
xprtrdma: Split the completion queue
xprtrdma: Make rpcrdma_ep_destroy() return void
...
Diffstat (limited to 'fs/nfs/pnfs.h')
-rw-r--r-- | fs/nfs/pnfs.h | 30 |
1 files changed, 7 insertions, 23 deletions
diff --git a/fs/nfs/pnfs.h b/fs/nfs/pnfs.h index c3058a076596..4fb309a2b4c4 100644 --- a/fs/nfs/pnfs.h +++ b/fs/nfs/pnfs.h | |||
@@ -113,8 +113,8 @@ struct pnfs_layoutdriver_type { | |||
113 | * Return PNFS_ATTEMPTED to indicate the layout code has attempted | 113 | * Return PNFS_ATTEMPTED to indicate the layout code has attempted |
114 | * I/O, else return PNFS_NOT_ATTEMPTED to fall back to normal NFS | 114 | * I/O, else return PNFS_NOT_ATTEMPTED to fall back to normal NFS |
115 | */ | 115 | */ |
116 | enum pnfs_try_status (*read_pagelist) (struct nfs_read_data *nfs_data); | 116 | enum pnfs_try_status (*read_pagelist) (struct nfs_pgio_data *nfs_data); |
117 | enum pnfs_try_status (*write_pagelist) (struct nfs_write_data *nfs_data, int how); | 117 | enum pnfs_try_status (*write_pagelist) (struct nfs_pgio_data *nfs_data, int how); |
118 | 118 | ||
119 | void (*free_deviceid_node) (struct nfs4_deviceid_node *); | 119 | void (*free_deviceid_node) (struct nfs4_deviceid_node *); |
120 | 120 | ||
@@ -180,11 +180,6 @@ extern int nfs4_proc_layoutreturn(struct nfs4_layoutreturn *lrp); | |||
180 | void pnfs_get_layout_hdr(struct pnfs_layout_hdr *lo); | 180 | void pnfs_get_layout_hdr(struct pnfs_layout_hdr *lo); |
181 | void pnfs_put_lseg(struct pnfs_layout_segment *lseg); | 181 | void pnfs_put_lseg(struct pnfs_layout_segment *lseg); |
182 | 182 | ||
183 | void pnfs_pageio_init_read(struct nfs_pageio_descriptor *, struct inode *, | ||
184 | const struct nfs_pgio_completion_ops *); | ||
185 | void pnfs_pageio_init_write(struct nfs_pageio_descriptor *, struct inode *, | ||
186 | int, const struct nfs_pgio_completion_ops *); | ||
187 | |||
188 | void set_pnfs_layoutdriver(struct nfs_server *, const struct nfs_fh *, u32); | 183 | void set_pnfs_layoutdriver(struct nfs_server *, const struct nfs_fh *, u32); |
189 | void unset_pnfs_layoutdriver(struct nfs_server *); | 184 | void unset_pnfs_layoutdriver(struct nfs_server *); |
190 | void pnfs_generic_pg_init_read(struct nfs_pageio_descriptor *, struct nfs_page *); | 185 | void pnfs_generic_pg_init_read(struct nfs_pageio_descriptor *, struct nfs_page *); |
@@ -192,7 +187,8 @@ int pnfs_generic_pg_readpages(struct nfs_pageio_descriptor *desc); | |||
192 | void pnfs_generic_pg_init_write(struct nfs_pageio_descriptor *pgio, | 187 | void pnfs_generic_pg_init_write(struct nfs_pageio_descriptor *pgio, |
193 | struct nfs_page *req, u64 wb_size); | 188 | struct nfs_page *req, u64 wb_size); |
194 | int pnfs_generic_pg_writepages(struct nfs_pageio_descriptor *desc); | 189 | int pnfs_generic_pg_writepages(struct nfs_pageio_descriptor *desc); |
195 | bool pnfs_generic_pg_test(struct nfs_pageio_descriptor *pgio, struct nfs_page *prev, struct nfs_page *req); | 190 | size_t pnfs_generic_pg_test(struct nfs_pageio_descriptor *pgio, |
191 | struct nfs_page *prev, struct nfs_page *req); | ||
196 | void pnfs_set_lo_fail(struct pnfs_layout_segment *lseg); | 192 | void pnfs_set_lo_fail(struct pnfs_layout_segment *lseg); |
197 | struct pnfs_layout_segment *pnfs_layout_process(struct nfs4_layoutget *lgp); | 193 | struct pnfs_layout_segment *pnfs_layout_process(struct nfs4_layoutget *lgp); |
198 | void pnfs_free_lseg_list(struct list_head *tmp_list); | 194 | void pnfs_free_lseg_list(struct list_head *tmp_list); |
@@ -217,13 +213,13 @@ bool pnfs_roc(struct inode *ino); | |||
217 | void pnfs_roc_release(struct inode *ino); | 213 | void pnfs_roc_release(struct inode *ino); |
218 | void pnfs_roc_set_barrier(struct inode *ino, u32 barrier); | 214 | void pnfs_roc_set_barrier(struct inode *ino, u32 barrier); |
219 | bool pnfs_roc_drain(struct inode *ino, u32 *barrier, struct rpc_task *task); | 215 | bool pnfs_roc_drain(struct inode *ino, u32 *barrier, struct rpc_task *task); |
220 | void pnfs_set_layoutcommit(struct nfs_write_data *wdata); | 216 | void pnfs_set_layoutcommit(struct nfs_pgio_data *wdata); |
221 | void pnfs_cleanup_layoutcommit(struct nfs4_layoutcommit_data *data); | 217 | void pnfs_cleanup_layoutcommit(struct nfs4_layoutcommit_data *data); |
222 | int pnfs_layoutcommit_inode(struct inode *inode, bool sync); | 218 | int pnfs_layoutcommit_inode(struct inode *inode, bool sync); |
223 | int _pnfs_return_layout(struct inode *); | 219 | int _pnfs_return_layout(struct inode *); |
224 | int pnfs_commit_and_return_layout(struct inode *); | 220 | int pnfs_commit_and_return_layout(struct inode *); |
225 | void pnfs_ld_write_done(struct nfs_write_data *); | 221 | void pnfs_ld_write_done(struct nfs_pgio_data *); |
226 | void pnfs_ld_read_done(struct nfs_read_data *); | 222 | void pnfs_ld_read_done(struct nfs_pgio_data *); |
227 | struct pnfs_layout_segment *pnfs_update_layout(struct inode *ino, | 223 | struct pnfs_layout_segment *pnfs_update_layout(struct inode *ino, |
228 | struct nfs_open_context *ctx, | 224 | struct nfs_open_context *ctx, |
229 | loff_t pos, | 225 | loff_t pos, |
@@ -461,18 +457,6 @@ static inline void unset_pnfs_layoutdriver(struct nfs_server *s) | |||
461 | { | 457 | { |
462 | } | 458 | } |
463 | 459 | ||
464 | static inline void pnfs_pageio_init_read(struct nfs_pageio_descriptor *pgio, struct inode *inode, | ||
465 | const struct nfs_pgio_completion_ops *compl_ops) | ||
466 | { | ||
467 | nfs_pageio_init_read(pgio, inode, compl_ops); | ||
468 | } | ||
469 | |||
470 | static inline void pnfs_pageio_init_write(struct nfs_pageio_descriptor *pgio, struct inode *inode, int ioflags, | ||
471 | const struct nfs_pgio_completion_ops *compl_ops) | ||
472 | { | ||
473 | nfs_pageio_init_write(pgio, inode, ioflags, compl_ops); | ||
474 | } | ||
475 | |||
476 | static inline int | 460 | static inline int |
477 | pnfs_commit_list(struct inode *inode, struct list_head *mds_pages, int how, | 461 | pnfs_commit_list(struct inode *inode, struct list_head *mds_pages, int how, |
478 | struct nfs_commit_info *cinfo) | 462 | struct nfs_commit_info *cinfo) |