summaryrefslogtreecommitdiff
path: root/sys/kern/vfs_vnode.c
diff options
context:
space:
mode:
authorhannken <hannken@NetBSD.org>2019-02-20 10:07:27 +0000
committerhannken <hannken@NetBSD.org>2019-02-20 10:07:27 +0000
commit6e9babeafb4daee9b1e48bd176b97ff6cd7ef15e (patch)
tree172b12a1bad7386f87a9ea7bbc63627183203bde /sys/kern/vfs_vnode.c
parentca0c60e428c1d3a1d408761e3a455791464d1ebc (diff)
Attach "mnt_transinfo" to "dead_rootmount" so every mount has a
valid "mnt_transinfo" and remove now unneeded flag IMNT_HAS_TRANS. Run fstrans_start()/fstrans_done() on dead_rootmount if FSTRANS_DEAD_ENABLED. Should become the default for DIAGNOSTIC in the future.
Diffstat (limited to 'sys/kern/vfs_vnode.c')
-rw-r--r--sys/kern/vfs_vnode.c12
1 files changed, 5 insertions, 7 deletions
diff --git a/sys/kern/vfs_vnode.c b/sys/kern/vfs_vnode.c
index 8b6a4152a20..35be3e0f581 100644
--- a/sys/kern/vfs_vnode.c
+++ b/sys/kern/vfs_vnode.c
@@ -1,4 +1,4 @@
-/* $NetBSD: vfs_vnode.c,v 1.102 2019/02/20 10:06:33 hannken Exp $ */
+/* $NetBSD: vfs_vnode.c,v 1.103 2019/02/20 10:07:27 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.102 2019/02/20 10:06:33 hannken Exp $");
+__KERNEL_RCSID(0, "$NetBSD: vfs_vnode.c,v 1.103 2019/02/20 10:07:27 hannken Exp $");
#include <sys/param.h>
#include <sys/kernel.h>
@@ -382,7 +382,7 @@ vfs_vnode_sysinit(void)
dead_rootmount = vfs_mountalloc(&dead_vfsops, NULL);
KASSERT(dead_rootmount != NULL);
- dead_rootmount->mnt_iflag = IMNT_MPSAFE;
+ dead_rootmount->mnt_iflag |= IMNT_MPSAFE;
mutex_init(&vdrain_lock, MUTEX_DEFAULT, IPL_NONE);
TAILQ_INIT(&lru_free_list);
@@ -1030,8 +1030,7 @@ void
vgone(vnode_t *vp)
{
- KASSERT((vp->v_mount->mnt_iflag & IMNT_HAS_TRANS) == 0 ||
- fstrans_is_owner(vp->v_mount));
+ KASSERT(vp->v_mount == dead_rootmount || fstrans_is_owner(vp->v_mount));
vn_lock(vp, LK_EXCLUSIVE | LK_RETRY);
mutex_enter(vp->v_interlock);
@@ -1684,8 +1683,7 @@ vcache_make_anon(vnode_t *vp)
bool recycle;
KASSERT(vp->v_type == VBLK || vp->v_type == VCHR);
- KASSERT((vp->v_mount->mnt_iflag & IMNT_HAS_TRANS) == 0 ||
- fstrans_is_owner(vp->v_mount));
+ KASSERT(vp->v_mount == dead_rootmount || fstrans_is_owner(vp->v_mount));
VSTATE_ASSERT_UNLOCKED(vp, VS_ACTIVE);
/* Remove from vnode cache. */