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__)

Reply via email to