diff options
author | dfr <dfr@FreeBSD.org> | 1997-05-19 14:36:56 +0000 |
---|---|---|
committer | dfr <dfr@FreeBSD.org> | 1997-05-19 14:36:56 +0000 |
commit | d7e320b30e346cf2c6e56f2137bd257b8f8278e7 (patch) | |
tree | afc51a58d727816c7b373ca2288b232ae4d5dd97 /sys/vm/vnode_pager.c | |
parent | 9d3c1b4d788c8e5f07a10319b51b2125f3731f85 (diff) | |
download | FreeBSD-src-d7e320b30e346cf2c6e56f2137bd257b8f8278e7.zip FreeBSD-src-d7e320b30e346cf2c6e56f2137bd257b8f8278e7.tar.gz |
Fix a few bugs with NFS and mmap caused by NFS' use of b_validoff
and b_validend. The changes to vfs_bio.c are a bit ugly but hopefully
can be tidied up later by a slight redesign.
PR: kern/2573, kern/2754, kern/3046 (possibly)
Reviewed by: dyson
Diffstat (limited to 'sys/vm/vnode_pager.c')
-rw-r--r-- | sys/vm/vnode_pager.c | 7 |
1 files changed, 6 insertions, 1 deletions
diff --git a/sys/vm/vnode_pager.c b/sys/vm/vnode_pager.c index e4d7404..d258351 100644 --- a/sys/vm/vnode_pager.c +++ b/sys/vm/vnode_pager.c @@ -38,7 +38,7 @@ * SUCH DAMAGE. * * from: @(#)vnode_pager.c 7.5 (Berkeley) 4/20/91 - * $Id: vnode_pager.c,v 1.69 1997/02/22 09:48:42 peter Exp $ + * $Id: vnode_pager.c,v 1.70 1997/03/08 04:33:47 dyson Exp $ */ /* @@ -692,7 +692,12 @@ vnode_pager_leaf_getpages(object, m, count, reqpage) /* * if ANY DEV_BSIZE blocks are valid on a large filesystem block * then, the entire page is valid -- + * XXX no it isn't */ + + if (m[reqpage]->valid != VM_PAGE_BITS_ALL) + m[reqpage]->valid = 0; + if (m[reqpage]->valid) { m[reqpage]->valid = VM_PAGE_BITS_ALL; for (i = 0; i < count; i++) { |