diff options
| author | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-26 12:52:09 -0400 |
|---|---|---|
| committer | Linus Torvalds <torvalds@linux-foundation.org> | 2010-10-26 12:52:09 -0400 |
| commit | a4dd8dce14014665862ce7911b38cb2c69e366dd (patch) | |
| tree | 00e79b2845d5d49abcd83cf253db83a52d482265 /fs/nfs/read.c | |
| parent | b18cae4224bde7e5a332c19bc99247b2098ea232 (diff) | |
| parent | 411b5e05617593efebc06241dbc56f42150f2abe (diff) | |
Merge branch 'nfs-for-2.6.37' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6
* 'nfs-for-2.6.37' of git://git.linux-nfs.org/projects/trondmy/nfs-2.6:
net/sunrpc: Use static const char arrays
nfs4: fix channel attribute sanity-checks
NFSv4.1: Use more sensible names for 'initialize_mountpoint'
NFSv4.1: pnfs: filelayout: add driver's LAYOUTGET and GETDEVICEINFO infrastructure
NFSv4.1: pnfs: add LAYOUTGET and GETDEVICEINFO infrastructure
NFS: client needs to maintain list of inodes with active layouts
NFS: create and destroy inode's layout cache
NFSv4.1: pnfs: filelayout: introduce minimal file layout driver
NFSv4.1: pnfs: full mount/umount infrastructure
NFS: set layout driver
NFS: ask for layouttypes during v4 fsinfo call
NFS: change stateid to be a union
NFSv4.1: pnfsd, pnfs: protocol level pnfs constants
SUNRPC: define xdr_decode_opaque_fixed
NFSD: remove duplicate NFS4_STATEID_SIZE
Diffstat (limited to 'fs/nfs/read.c')
| -rw-r--r-- | fs/nfs/read.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/fs/nfs/read.c b/fs/nfs/read.c index 79859c81a943..e4b62c6f5a6e 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 | ||
| @@ -120,6 +121,7 @@ int nfs_readpage_async(struct nfs_open_context *ctx, struct inode *inode, | |||
| 120 | len = nfs_page_length(page); | 121 | len = nfs_page_length(page); |
| 121 | if (len == 0) | 122 | if (len == 0) |
| 122 | return nfs_return_empty_page(page); | 123 | return nfs_return_empty_page(page); |
| 124 | pnfs_update_layout(inode, ctx, IOMODE_READ); | ||
| 123 | new = nfs_create_request(ctx, inode, page, 0, len); | 125 | new = nfs_create_request(ctx, inode, page, 0, len); |
| 124 | if (IS_ERR(new)) { | 126 | if (IS_ERR(new)) { |
| 125 | unlock_page(page); | 127 | unlock_page(page); |
| @@ -624,6 +626,7 @@ int nfs_readpages(struct file *filp, struct address_space *mapping, | |||
| 624 | if (ret == 0) | 626 | if (ret == 0) |
| 625 | goto read_complete; /* all pages were read */ | 627 | goto read_complete; /* all pages were read */ |
| 626 | 628 | ||
| 629 | pnfs_update_layout(inode, desc.ctx, IOMODE_READ); | ||
| 627 | if (rsize < PAGE_CACHE_SIZE) | 630 | if (rsize < PAGE_CACHE_SIZE) |
| 628 | nfs_pageio_init(&pgio, inode, nfs_pagein_multi, rsize, 0); | 631 | nfs_pageio_init(&pgio, inode, nfs_pagein_multi, rsize, 0); |
| 629 | else | 632 | else |
