diff options
Diffstat (limited to 'fs/nfs/read.c')
-rw-r--r-- | fs/nfs/read.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/fs/nfs/read.c b/fs/nfs/read.c index 87adc2744246..aedcaa7f291f 100644 --- a/fs/nfs/read.c +++ b/fs/nfs/read.c | |||
@@ -25,6 +25,7 @@ | |||
25 | #include "internal.h" | 25 | #include "internal.h" |
26 | #include "iostat.h" | 26 | #include "iostat.h" |
27 | #include "fscache.h" | 27 | #include "fscache.h" |
28 | #include "pnfs.h" | ||
28 | 29 | ||
29 | #define NFSDBG_FACILITY NFSDBG_PAGECACHE | 30 | #define NFSDBG_FACILITY NFSDBG_PAGECACHE |
30 | 31 | ||
@@ -46,7 +47,6 @@ struct nfs_read_data *nfs_readdata_alloc(unsigned int pagecount) | |||
46 | memset(p, 0, sizeof(*p)); | 47 | memset(p, 0, sizeof(*p)); |
47 | INIT_LIST_HEAD(&p->pages); | 48 | INIT_LIST_HEAD(&p->pages); |
48 | p->npages = pagecount; | 49 | p->npages = pagecount; |
49 | p->res.seq_res.sr_slotid = NFS4_MAX_SLOT_TABLE; | ||
50 | if (pagecount <= ARRAY_SIZE(p->page_array)) | 50 | if (pagecount <= ARRAY_SIZE(p->page_array)) |
51 | p->pagevec = p->page_array; | 51 | p->pagevec = p->page_array; |
52 | else { | 52 | else { |
@@ -121,6 +121,7 @@ int nfs_readpage_async(struct nfs_open_context *ctx, struct inode *inode, | |||
121 | len = nfs_page_length(page); | 121 | len = nfs_page_length(page); |
122 | if (len == 0) | 122 | if (len == 0) |
123 | return nfs_return_empty_page(page); | 123 | return nfs_return_empty_page(page); |
124 | pnfs_update_layout(inode, ctx, IOMODE_READ); | ||
124 | new = nfs_create_request(ctx, inode, page, 0, len); | 125 | new = nfs_create_request(ctx, inode, page, 0, len); |
125 | if (IS_ERR(new)) { | 126 | if (IS_ERR(new)) { |
126 | unlock_page(page); | 127 | unlock_page(page); |
@@ -151,7 +152,6 @@ static void nfs_readpage_release(struct nfs_page *req) | |||
151 | (long long)NFS_FILEID(req->wb_context->path.dentry->d_inode), | 152 | (long long)NFS_FILEID(req->wb_context->path.dentry->d_inode), |
152 | req->wb_bytes, | 153 | req->wb_bytes, |
153 | (long long)req_offset(req)); | 154 | (long long)req_offset(req)); |
154 | nfs_clear_request(req); | ||
155 | nfs_release_request(req); | 155 | nfs_release_request(req); |
156 | } | 156 | } |
157 | 157 | ||
@@ -625,6 +625,7 @@ int nfs_readpages(struct file *filp, struct address_space *mapping, | |||
625 | if (ret == 0) | 625 | if (ret == 0) |
626 | goto read_complete; /* all pages were read */ | 626 | goto read_complete; /* all pages were read */ |
627 | 627 | ||
628 | pnfs_update_layout(inode, desc.ctx, IOMODE_READ); | ||
628 | if (rsize < PAGE_CACHE_SIZE) | 629 | if (rsize < PAGE_CACHE_SIZE) |
629 | nfs_pageio_init(&pgio, inode, nfs_pagein_multi, rsize, 0); | 630 | nfs_pageio_init(&pgio, inode, nfs_pagein_multi, rsize, 0); |
630 | else | 631 | else |