Module Name:    src
Committed By:   christos
Date:           Mon Sep 23 19:44:21 UTC 2013

Modified Files:
        src/external/cddl/osnet/sys/sys: vnode.h

Log Message:
Hack: Instead of dying in vrele with a kernel assertion, detect that the
usecount of the vnode is 0 and treat it as a noop. This is wrong, buf it
get us through the VN_RELE() after the close in vdev_file.c


To generate a diff of this commit:
cvs rdiff -u -r1.9 -r1.10 src/external/cddl/osnet/sys/sys/vnode.h

Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.

Modified files:

Index: src/external/cddl/osnet/sys/sys/vnode.h
diff -u src/external/cddl/osnet/sys/sys/vnode.h:1.9 src/external/cddl/osnet/sys/sys/vnode.h:1.10
--- src/external/cddl/osnet/sys/sys/vnode.h:1.9	Sun Jun 12 00:43:11 2011
+++ src/external/cddl/osnet/sys/sys/vnode.h	Mon Sep 23 15:44:21 2013
@@ -1,5 +1,5 @@
 
-/*	$NetBSD: vnode.h,v 1.9 2011/06/12 04:43:11 mrg Exp $	*/
+/*	$NetBSD: vnode.h,v 1.10 2013/09/23 19:44:21 christos Exp $	*/
 
 /*
  * CDDL HEADER START
@@ -294,7 +294,12 @@ int	vn_is_readonly(vnode_t *);
 #define vn_renamepath(tdvp, svp, tnm, lentnm)   do { } while (0)
 
 #define	VN_HOLD(v)	vref(v)
-#define	VN_RELE(v)	vrele(v)
+#define	VN_RELE(v)	do { \
+	    if ((v)->v_usecount == 0) \
+		    printf("%s, %d: %p unused\n", __FILE__, __LINE__, v); \
+	    else \
+		    vrele(v); \
+    } while (/*CONSTCOND*/0)
 #define	VN_URELE(v)	vput(v)
 #define	VN_SET_VFS_TYPE_DEV(vp, vfs, type, flag)	(0)
 

Reply via email to