summaryrefslogtreecommitdiffstats
path: root/sys/kern/vfs_subr.c
diff options
context:
space:
mode:
authorprovos <provos@openbsd.org>2001-06-05 21:47:07 +0000
committerprovos <provos@openbsd.org>2001-06-05 21:47:07 +0000
commit18a9ce4999cbafada38fa51d466cf34671f63dbc (patch)
tree466b0d14aa9aeb93ef20279fdea3a3c79844f98f /sys/kern/vfs_subr.c
parentPF_KEY identity extensions are NUL-terminated. Now, also calculate (diff)
downloadwireguard-openbsd-18a9ce4999cbafada38fa51d466cf34671f63dbc.tar.xz
wireguard-openbsd-18a9ce4999cbafada38fa51d466cf34671f63dbc.zip
send note_revoke to knotes when vnode goes away, okay art@
Diffstat (limited to 'sys/kern/vfs_subr.c')
-rw-r--r--sys/kern/vfs_subr.c8
1 files changed, 7 insertions, 1 deletions
diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c
index 3d77ff1c57f..e80f0e6d0d6 100644
--- a/sys/kern/vfs_subr.c
+++ b/sys/kern/vfs_subr.c
@@ -1,4 +1,4 @@
-/* $OpenBSD: vfs_subr.c,v 1.60 2001/05/16 13:54:37 art Exp $ */
+/* $OpenBSD: vfs_subr.c,v 1.61 2001/06/05 21:47:07 provos Exp $ */
/* $NetBSD: vfs_subr.c,v 1.53 1996/04/22 01:39:13 christos Exp $ */
/*
@@ -121,6 +121,9 @@ static __inline__ void vputonfreelist __P((struct vnode *));
void printlockedvnodes __P((void));
#endif
+#define VN_KNOTE(vp, b) \
+ KNOTE((struct klist *)&vp->v_selectinfo.vsi_selinfo.si_note, (b))
+
struct pool vnode_pool;
/*
@@ -1042,6 +1045,9 @@ vclean(vp, flags, p)
* Done with purge, notify sleepers of the grim news.
*/
vp->v_op = dead_vnodeop_p;
+ simple_lock(&vp->v_selectinfo.vsi_lock);
+ VN_KNOTE(vp, NOTE_REVOKE);
+ simple_unlock(&vp->v_selectinfo.vsi_lock);
vp->v_tag = VT_NON;
vp->v_flag &= ~VXLOCK;
#ifdef DIAGNOSTIC