diff options
| author | hannken <hannken@NetBSD.org> | 2019-02-20 10:07:27 +0000 |
|---|---|---|
| committer | hannken <hannken@NetBSD.org> | 2019-02-20 10:07:27 +0000 |
| commit | 6e9babeafb4daee9b1e48bd176b97ff6cd7ef15e (patch) | |
| tree | 172b12a1bad7386f87a9ea7bbc63627183203bde /sys/kern/vfs_vnode.c | |
| parent | ca0c60e428c1d3a1d408761e3a455791464d1ebc (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.c | 12 |
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. */ |
