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)