aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTrond Myklebust <Trond.Myklebust@netapp.com>2006-09-15 16:03:45 -0400
committerTrond Myklebust <Trond.Myklebust@netapp.com>2006-09-19 11:54:39 -0400
commit7a52411107e1ac8f5be6967936ec237f40a1c7e4 (patch)
tree155ba22e3d333f7e0f6cf1fcbb3d9538f75375fe
parent47a5c6fa0e204a2b63309c648bb2fde36836c826 (diff)
NFS: Fix Oopsable condition in nfs_readpage_sync()
Signed-off-by: Trond Myklebust <Trond.Myklebust@netapp.com>
-rw-r--r--fs/nfs/read.c6
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
212io_error: 214io_error: