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