diff options
author | Anna Schumaker <Anna.Schumaker@netapp.com> | 2014-05-06 09:12:34 -0400 |
---|---|---|
committer | Trond Myklebust <trond.myklebust@primarydata.com> | 2014-05-28 18:40:56 -0400 |
commit | ce59515c1484d3a01bc2f3e7043dc488d25efe34 (patch) | |
tree | 00c371ca81a26280eab34ad96fae8ca9c95d940d /fs/nfs/read.c | |
parent | 6f92fa4581f1c26562f80dc686b3c9ea76556911 (diff) |
NFS: Create a common rpcsetup function for reads and writes
Write adds a little bit of code dealing with flush flags, but since
"how" will always be 0 when reading we can share the code.
Signed-off-by: Anna Schumaker <Anna.Schumaker@Netapp.com>
Signed-off-by: Trond Myklebust <trond.myklebust@primarydata.com>
Diffstat (limited to 'fs/nfs/read.c')
-rw-r--r-- | fs/nfs/read.c | 26 |
1 files changed, 2 insertions, 24 deletions
diff --git a/fs/nfs/read.c b/fs/nfs/read.c index a33490c0899f..0c88c60fbee9 100644 --- a/fs/nfs/read.c +++ b/fs/nfs/read.c | |||
@@ -192,28 +192,6 @@ int nfs_initiate_read(struct rpc_clnt *clnt, | |||
192 | } | 192 | } |
193 | EXPORT_SYMBOL_GPL(nfs_initiate_read); | 193 | EXPORT_SYMBOL_GPL(nfs_initiate_read); |
194 | 194 | ||
195 | /* | ||
196 | * Set up the NFS read request struct | ||
197 | */ | ||
198 | static void nfs_read_rpcsetup(struct nfs_pgio_data *data, | ||
199 | unsigned int count, unsigned int offset) | ||
200 | { | ||
201 | struct nfs_page *req = data->header->req; | ||
202 | |||
203 | data->args.fh = NFS_FH(data->header->inode); | ||
204 | data->args.offset = req_offset(req) + offset; | ||
205 | data->args.pgbase = req->wb_pgbase + offset; | ||
206 | data->args.pages = data->pages.pagevec; | ||
207 | data->args.count = count; | ||
208 | data->args.context = get_nfs_open_context(req->wb_context); | ||
209 | data->args.lock_context = req->wb_lock_context; | ||
210 | |||
211 | data->res.fattr = &data->fattr; | ||
212 | data->res.count = count; | ||
213 | data->res.eof = 0; | ||
214 | nfs_fattr_init(&data->fattr); | ||
215 | } | ||
216 | |||
217 | static int nfs_do_read(struct nfs_pgio_data *data, | 195 | static int nfs_do_read(struct nfs_pgio_data *data, |
218 | const struct rpc_call_ops *call_ops) | 196 | const struct rpc_call_ops *call_ops) |
219 | { | 197 | { |
@@ -305,7 +283,7 @@ static int nfs_pagein_multi(struct nfs_pageio_descriptor *desc, | |||
305 | return -ENOMEM; | 283 | return -ENOMEM; |
306 | } | 284 | } |
307 | data->pages.pagevec[0] = page; | 285 | data->pages.pagevec[0] = page; |
308 | nfs_read_rpcsetup(data, len, offset); | 286 | nfs_pgio_rpcsetup(data, len, offset, 0, NULL); |
309 | list_add(&data->list, &hdr->rpc_list); | 287 | list_add(&data->list, &hdr->rpc_list); |
310 | nbytes -= len; | 288 | nbytes -= len; |
311 | offset += len; | 289 | offset += len; |
@@ -340,7 +318,7 @@ static int nfs_pagein_one(struct nfs_pageio_descriptor *desc, | |||
340 | *pages++ = req->wb_page; | 318 | *pages++ = req->wb_page; |
341 | } | 319 | } |
342 | 320 | ||
343 | nfs_read_rpcsetup(data, desc->pg_count, 0); | 321 | nfs_pgio_rpcsetup(data, desc->pg_count, 0, 0, NULL); |
344 | list_add(&data->list, &hdr->rpc_list); | 322 | list_add(&data->list, &hdr->rpc_list); |
345 | desc->pg_rpc_callops = &nfs_pgio_common_ops; | 323 | desc->pg_rpc_callops = &nfs_pgio_common_ops; |
346 | return 0; | 324 | return 0; |