diff options
author | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-09-15 16:03:45 -0400 |
---|---|---|
committer | Trond Myklebust <Trond.Myklebust@netapp.com> | 2006-09-19 11:54:39 -0400 |
commit | 7a52411107e1ac8f5be6967936ec237f40a1c7e4 (patch) | |
tree | 155ba22e3d333f7e0f6cf1fcbb3d9538f75375fe | |
parent | 47a5c6fa0e204a2b63309c648bb2fde36836c826 (diff) |
NFS: Fix Oopsable condition in nfs_readpage_sync()
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
-rw-r--r-- | fs/nfs/read.c | 6 |
1 files changed, 4 insertions, 2 deletions
diff --git a/fs/nfs/read.c b/fs/nfs/read.c index 7a9ee00e0c61..f0aff824a291 100644 --- a/fs/nfs/read.c +++ b/fs/nfs/read.c | |||
@@ -204,9 +204,11 @@ static int nfs_readpage_sync(struct nfs_open_context *ctx, struct inode *inode, | |||
204 | NFS_I(inode)->cache_validity |= NFS_INO_INVALID_ATIME; | 204 | NFS_I(inode)->cache_validity |= NFS_INO_INVALID_ATIME; |
205 | spin_unlock(&inode->i_lock); | 205 | spin_unlock(&inode->i_lock); |
206 | 206 | ||
207 | nfs_readpage_truncate_uninitialised_page(rdata); | 207 | if (rdata->res.eof || rdata->res.count == rdata->args.count) { |
208 | if (rdata->res.eof || rdata->res.count == rdata->args.count) | ||
209 | SetPageUptodate(page); | 208 | SetPageUptodate(page); |
209 | if (rdata->res.eof && count != 0) | ||
210 | memclear_highpage_flush(page, rdata->args.pgbase, count); | ||
211 | } | ||
210 | result = 0; | 212 | result = 0; |
211 | 213 | ||
212 | io_error: | 214 | io_error: |