Module Name: src Committed By: hannken Date: Sun May 28 16:39:42 UTC 2017
Modified Files: src/share/man/man9: vnode.9 src/sys/kern: vfs_vnode.c src/sys/sys: param.h Log Message: Restrict vgone() to suspended file systems only. Welcome to 7.99.75, old file system modules would cause a diagnostic assertion with new kernel. To generate a diff of this commit: cvs rdiff -u -r1.79 -r1.80 src/share/man/man9/vnode.9 cvs rdiff -u -r1.92 -r1.93 src/sys/kern/vfs_vnode.c cvs rdiff -u -r1.541 -r1.542 src/sys/sys/param.h Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/share/man/man9/vnode.9 diff -u src/share/man/man9/vnode.9:1.79 src/share/man/man9/vnode.9:1.80 --- src/share/man/man9/vnode.9:1.79 Mon Jan 23 11:49:03 2017 +++ src/share/man/man9/vnode.9 Sun May 28 16:39:41 2017 @@ -1,4 +1,4 @@ -.\" $NetBSD: vnode.9,v 1.79 2017/01/23 11:49:03 abhinav Exp $ +.\" $NetBSD: vnode.9,v 1.80 2017/05/28 16:39:41 hannken Exp $ .\" .\" Copyright (c) 2001, 2005, 2006 The NetBSD Foundation, Inc. .\" All rights reserved. @@ -27,7 +27,7 @@ .\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE .\" POSSIBILITY OF SUCH DAMAGE. .\" -.Dd January 11, 2017 +.Dd May 28, 2017 .Dt VNODE 9 .Os .Sh NAME @@ -617,6 +617,9 @@ is a null operation if the reference cou Eliminate all activity associated with the unlocked vnode .Fa vp in preparation for recycling. +This operation is restricted to suspended file systems. +See +.Xr vfs_suspend 9 . .It Fn vgonel "vp" "p" Eliminate all activity associated with the locked vnode .Fa vp Index: src/sys/kern/vfs_vnode.c diff -u src/sys/kern/vfs_vnode.c:1.92 src/sys/kern/vfs_vnode.c:1.93 --- src/sys/kern/vfs_vnode.c:1.92 Sun May 28 16:35:47 2017 +++ src/sys/kern/vfs_vnode.c Sun May 28 16:39:41 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: vfs_vnode.c,v 1.92 2017/05/28 16:35:47 hannken Exp $ */ +/* $NetBSD: vfs_vnode.c,v 1.93 2017/05/28 16:39:41 hannken Exp $ */ /*- * Copyright (c) 1997-2011 The NetBSD Foundation, Inc. @@ -156,7 +156,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: vfs_vnode.c,v 1.92 2017/05/28 16:35:47 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: vfs_vnode.c,v 1.93 2017/05/28 16:39:41 hannken Exp $"); #include <sys/param.h> #include <sys/kernel.h> @@ -1018,6 +1018,9 @@ void vgone(vnode_t *vp) { + KASSERT((vp->v_mount->mnt_iflag & IMNT_HAS_TRANS) == 0 || + fstrans_is_owner(vp->v_mount)); + vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); mutex_enter(vp->v_interlock); VSTATE_WAIT_STABLE(vp); Index: src/sys/sys/param.h diff -u src/sys/sys/param.h:1.541 src/sys/sys/param.h:1.542 --- src/sys/sys/param.h:1.541 Fri May 26 14:22:53 2017 +++ src/sys/sys/param.h Sun May 28 16:39:42 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: param.h,v 1.541 2017/05/26 14:22:53 riastradh Exp $ */ +/* $NetBSD: param.h,v 1.542 2017/05/28 16:39:42 hannken Exp $ */ /*- * Copyright (c) 1982, 1986, 1989, 1993 @@ -67,7 +67,7 @@ * 2.99.9 (299000900) */ -#define __NetBSD_Version__ 799007400 /* NetBSD 7.99.74 */ +#define __NetBSD_Version__ 799007500 /* NetBSD 7.99.75 */ #define __NetBSD_Prereq__(M,m,p) (((((M) * 100000000) + \ (m) * 1000000) + (p) * 100) <= __NetBSD_Version__)