diff options
author | 1999-02-26 05:17:43 +0000 | |
---|---|---|
committer | 1999-02-26 05:17:43 +0000 | |
commit | cf67d3e7d1aed9825a3013ce8c413c3d96055d52 (patch) | |
tree | 7d2d973e3de3037b3bdbe7d64ab56aa670036d2c /sys/kern/vfs_subr.c | |
parent | a new way of mapping in exec for uvm (diff) | |
download | wireguard-openbsd-cf67d3e7d1aed9825a3013ce8c413c3d96055d52.tar.xz wireguard-openbsd-cf67d3e7d1aed9825a3013ce8c413c3d96055d52.zip |
adapt to uvm vnode pager
Diffstat (limited to 'sys/kern/vfs_subr.c')
-rw-r--r-- | sys/kern/vfs_subr.c | 19 |
1 files changed, 16 insertions, 3 deletions
diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c index f084e71fc2f..4b5c24997d1 100644 --- a/sys/kern/vfs_subr.c +++ b/sys/kern/vfs_subr.c @@ -1,4 +1,4 @@ -/* $OpenBSD: vfs_subr.c,v 1.31 1999/02/19 17:15:45 art Exp $ */ +/* $OpenBSD: vfs_subr.c,v 1.32 1999/02/26 05:17:43 art Exp $ */ /* $NetBSD: vfs_subr.c,v 1.53 1996/04/22 01:39:13 christos Exp $ */ /* @@ -68,6 +68,10 @@ #include <miscfs/specfs/specdev.h> +#if defined(UVM) +#include <uvm/uvm_extern.h> +#endif + enum vtype iftovt_tab[16] = { VNON, VFIFO, VCHR, VNON, VDIR, VNON, VBLK, VNON, VREG, VNON, VLNK, VNON, VSOCK, VNON, VNON, VBAD, @@ -457,6 +461,9 @@ getnewvnode(tag, mp, vops, vpp) *vpp = vp; vp->v_usecount = 1; vp->v_data = 0; +#ifdef UVM + simple_lock_init(&vp->v_uvm.u_obj.vmobjlock); +#endif return (0); } @@ -981,8 +988,12 @@ vclean(vp, flags, p) if (vp->v_flag & VXLOCK) panic("vclean: deadlock"); vp->v_flag |= VXLOCK; - - +#ifdef UVM + /* + * clean out any VM data associated with the vnode. + */ + uvm_vnp_terminate(vp); +#endif /* * Even if the count is zero, the VOP_INACTIVE routine may still * have the object locked while it cleans it out. The VOP_LOCK @@ -1726,7 +1737,9 @@ vfs_shutdown() if (panicstr == 0) { /* Release inodes held by texts before update. */ +#if !defined(UVM) vnode_pager_umount(NULL); +#endif #ifdef notdef vnshutdown(); #endif |