diff options
author | csapuntz <csapuntz@openbsd.org> | 1997-10-06 15:05:18 +0000 |
---|---|---|
committer | csapuntz <csapuntz@openbsd.org> | 1997-10-06 15:05:18 +0000 |
commit | 6e175d504b4d2c3634337aa6a71d85b74b81c113 (patch) | |
tree | 69347f4cbda33eca8b28929f0e401694bb32f5f7 /sys/miscfs/deadfs | |
parent | VFS Lite 2 Changes (diff) | |
download | wireguard-openbsd-6e175d504b4d2c3634337aa6a71d85b74b81c113.tar.xz wireguard-openbsd-6e175d504b4d2c3634337aa6a71d85b74b81c113.zip |
VFS Lite2 Changes
Diffstat (limited to 'sys/miscfs/deadfs')
-rw-r--r-- | sys/miscfs/deadfs/dead_vnops.c | 24 |
1 files changed, 18 insertions, 6 deletions
diff --git a/sys/miscfs/deadfs/dead_vnops.c b/sys/miscfs/deadfs/dead_vnops.c index 0d44c0bbff7..e1a6ffc0493 100644 --- a/sys/miscfs/deadfs/dead_vnops.c +++ b/sys/miscfs/deadfs/dead_vnops.c @@ -1,4 +1,4 @@ -/* $OpenBSD: dead_vnops.c,v 1.2 1996/02/27 07:49:43 niklas Exp $ */ +/* $OpenBSD: dead_vnops.c,v 1.3 1997/10/06 15:18:59 csapuntz Exp $ */ /* $NetBSD: dead_vnops.c,v 1.16 1996/02/13 13:12:48 mycroft Exp $ */ /* @@ -78,11 +78,11 @@ int dead_select __P((void *)); #define dead_inactive nullop #define dead_reclaim nullop int dead_lock __P((void *)); -#define dead_unlock nullop +#define dead_unlock vop_nounlock int dead_bmap __P((void *)); int dead_strategy __P((void *)); int dead_print __P((void *)); -#define dead_islocked nullop +#define dead_islocked vop_noislocked #define dead_pathconf dead_ebadf #define dead_advlock dead_ebadf #define dead_blkatoff dead_badop @@ -279,11 +279,23 @@ dead_lock(v) { struct vop_lock_args /* { struct vnode *a_vp; + int a_flags; + struct proc *a_p; } */ *ap = v; + struct vnode *vp = ap->a_vp; - if (!chkvnlock(ap->a_vp)) - return (0); - return (VCALL(ap->a_vp, VOFFSET(vop_lock), ap)); + /* + * Since we are not using the lock manager, we must clear + * the interlock here. + */ + if (ap->a_flags & LK_INTERLOCK) { + simple_unlock(&vp->v_interlock); + ap->a_flags &= ~LK_INTERLOCK; + } + if (!chkvnlock(vp)) + return (0); + + return (VCALL(vp, VOFFSET(vop_lock), ap)); } /* |