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/nfs/nfs_vnops.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/nfs/nfs_vnops.c')
-rw-r--r-- | sys/nfs/nfs_vnops.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/sys/nfs/nfs_vnops.c b/sys/nfs/nfs_vnops.c index d3ec002..ff5ad94 100644 --- a/sys/nfs/nfs_vnops.c +++ b/sys/nfs/nfs_vnops.c @@ -34,7 +34,7 @@ * SUCH DAMAGE. * * @(#)nfs_vnops.c 8.16 (Berkeley) 5/27/95 - * $Id: nfs_vnops.c,v 1.48 1997/05/09 13:18:42 dfr Exp $ + * $Id: nfs_vnops.c,v 1.49 1997/05/17 18:32:52 phk Exp $ */ @@ -184,6 +184,7 @@ static struct vnodeopv_entry_desc nfsv2_vnodeop_entries[] = { { &vop_truncate_desc, (vop_t *)nfs_truncate }, /* truncate */ { &vop_update_desc, (vop_t *)nfs_update }, /* update */ { &vop_bwrite_desc, (vop_t *)nfs_bwrite }, /* bwrite */ + { &vop_getpages_desc, (vop_t *)nfs_getpages }, /* getpages */ { NULL, NULL } }; static struct vnodeopv_desc nfsv2_vnodeop_opv_desc = @@ -1035,7 +1036,7 @@ nfs_read(ap) if (vp->v_type != VREG) return (EPERM); - return (nfs_bioread(vp, ap->a_uio, ap->a_ioflag, ap->a_cred)); + return (nfs_bioread(vp, ap->a_uio, ap->a_ioflag, ap->a_cred, 0)); } /* @@ -1053,7 +1054,7 @@ nfs_readlink(ap) if (vp->v_type != VLNK) return (EPERM); - return (nfs_bioread(vp, ap->a_uio, 0, ap->a_cred)); + return (nfs_bioread(vp, ap->a_uio, 0, ap->a_cred, 0)); } /* @@ -2055,7 +2056,7 @@ nfs_readdir(ap) * Call nfs_bioread() to do the real work. */ tresid = uio->uio_resid; - error = nfs_bioread(vp, uio, 0, ap->a_cred); + error = nfs_bioread(vp, uio, 0, ap->a_cred, 0); if (!error && uio->uio_resid == tresid) nfsstats.direofcache_misses++; |