aboutsummaryrefslogtreecommitdiff
path: root/sys/vm/vnode_pager.c
diff options
context:
space:
mode:
authorKonstantin Belousov <kib@FreeBSD.org>2012-08-14 11:45:47 +0000
committerKonstantin Belousov <kib@FreeBSD.org>2012-08-14 11:45:47 +0000
commitb6c00483e94c0640a6ba4ed49a7399c9ef5d431b (patch)
treec57999c31279d4b34edfa4c9044a68251f72d983 /sys/vm/vnode_pager.c
parent6e8fcacda452f3f892a86d81bc52bd4673e6eb9e (diff)
downloadsrc-b6c00483e94c0640a6ba4ed49a7399c9ef5d431b.tar.gz
src-b6c00483e94c0640a6ba4ed49a7399c9ef5d431b.zip
Do not leave invalid pages in the object after the short read for a
network file systems (not only NFS proper). Short reads cause pages other then the requested one, which were not filled by read response, to stay invalid. Change the vm_page_readahead_finish() interface to not take the error code, but instead to make a decision to free or to (de)activate the page only by its validity. As result, not requested invalid pages are freed even if the read RPC indicated success. Noted and reviewed by: alc MFC after: 1 week
Notes
Notes: svn path=/head/; revision=239246
Diffstat (limited to 'sys/vm/vnode_pager.c')
-rw-r--r--sys/vm/vnode_pager.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/sys/vm/vnode_pager.c b/sys/vm/vnode_pager.c
index da88b083a296..b0139ce07f42 100644
--- a/sys/vm/vnode_pager.c
+++ b/sys/vm/vnode_pager.c
@@ -987,7 +987,7 @@ vnode_pager_generic_getpages(vp, m, bytecount, reqpage)
}
if (i != reqpage)
- vm_page_readahead_finish(mt, error);
+ vm_page_readahead_finish(mt);
}
VM_OBJECT_UNLOCK(object);
if (error) {