patch-2.4.18 linux/fs/nfs/read.c
Next file: linux/fs/nfs/write.c
Previous file: linux/fs/nfs/nfs2xdr.c
Back to the patch index
Back to the overall index
- Lines: 27
- Date:
Wed Dec 26 17:15:45 2001
- Orig file:
linux.orig/fs/nfs/read.c
- Orig date:
Mon Feb 18 20:18:40 2002
diff -Naur -X /home/marcelo/lib/dontdiff linux.orig/fs/nfs/read.c linux/fs/nfs/read.c
@@ -397,7 +397,7 @@
{
struct nfs_read_data *data = (struct nfs_read_data *) task->tk_calldata;
struct inode *inode = data->inode;
- int count = data->res.count;
+ unsigned int count = data->res.count;
dprintk("NFS: %4d nfs_readpage_result, (status %d)\n",
task->tk_pid, task->tk_status);
@@ -411,9 +411,15 @@
struct page *page = req->wb_page;
nfs_list_remove_request(req);
- if (task->tk_status >= 0 && count >= 0) {
+ if (task->tk_status >= 0) {
+ if (count < PAGE_CACHE_SIZE) {
+ char *p = kmap(page);
+ memset(p + count, 0, PAGE_CACHE_SIZE - count);
+ kunmap(page);
+ count = 0;
+ } else
+ count -= PAGE_CACHE_SIZE;
SetPageUptodate(page);
- count -= PAGE_CACHE_SIZE;
} else
SetPageError(page);
flush_dcache_page(page);
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)