diff options
| author | John Dyson <dyson@FreeBSD.org> | 1995-10-23 02:23:29 +0000 |
|---|---|---|
| committer | John Dyson <dyson@FreeBSD.org> | 1995-10-23 02:23:29 +0000 |
| commit | 2c4488fce37090fbfb35b31f1a0390f4fa6da3fb (patch) | |
| tree | 5523ea9a03a0c87c10ad76292dec8feb90cea8fc /sys/vm/vnode_pager.c | |
| parent | 9d45c3af90b96b38d4f6407c2c9b6c2a08215abb (diff) | |
Notes
Diffstat (limited to 'sys/vm/vnode_pager.c')
| -rw-r--r-- | sys/vm/vnode_pager.c | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/sys/vm/vnode_pager.c b/sys/vm/vnode_pager.c index d8c2ab134d76..bbb0b05d1b28 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.49 1995/09/12 14:42:43 dyson Exp $ + * $Id: vnode_pager.c,v 1.50 1995/10/19 21:35:03 davidg Exp $ */ /* @@ -188,8 +188,11 @@ vnode_pager_haspage(object, offset, before, after) { struct vnode *vp = object->handle; daddr_t bn; + int err, run; daddr_t reqblock; - int err, run, poff, bsize, pagesperblock; + int poff; + int bsize; + int pagesperblock; /* * If filesystem no longer mounted or offset beyond end of file we do @@ -364,6 +367,9 @@ vnode_pager_addr(vp, address, run) if ((int) address < 0) return -1; + if (vp->v_mount == NULL) + return -1; + bsize = vp->v_mount->mnt_stat.f_iosize; vblock = address / bsize; voffset = address % bsize; @@ -413,6 +419,9 @@ vnode_pager_input_smlfs(object, m) int error = 0; vp = object->handle; + if (vp->v_mount == NULL) + return VM_PAGER_BAD; + bsize = vp->v_mount->mnt_stat.f_iosize; @@ -554,9 +563,9 @@ vnode_pager_getpages(object, m, count, reqpage) int rtval; struct vnode *vp; vp = object->handle; - rtval = VOP_GETPAGES(vp, m, count, reqpage); + rtval = VOP_GETPAGES(vp, m, count*PAGE_SIZE, reqpage, 0); if (rtval == EOPNOTSUPP) - return vnode_pager_leaf_getpages(object, m, count, reqpage); + return vnode_pager_leaf_getpages(object, m, count, reqpage, 0); else return rtval; } @@ -578,6 +587,9 @@ vnode_pager_leaf_getpages(object, m, count, reqpage) int error = 0; vp = object->handle; + if (vp->v_mount == NULL) + return VM_PAGER_BAD; + bsize = vp->v_mount->mnt_stat.f_iosize; /* get the UNDERLYING device for the file with VOP_BMAP() */ @@ -792,9 +804,9 @@ vnode_pager_putpages(object, m, count, sync, rtvals) int rtval; struct vnode *vp; vp = object->handle; - rtval = VOP_PUTPAGES(vp, m, count, sync, rtvals); + rtval = VOP_PUTPAGES(vp, m, count*PAGE_SIZE, sync, rtvals, 0); if (rtval == EOPNOTSUPP) - return vnode_pager_leaf_putpages(object, m, count, sync, rtvals); + return vnode_pager_leaf_putpages(object, m, count, sync, rtvals, 0); else return rtval; } |
