Module Name: src Committed By: riastradh Date: Sat Apr 1 19:35:57 UTC 2017
Modified Files: src/sys/fs/msdosfs: msdosfs_vfsops.c src/sys/fs/puffs: puffs_vfsops.c src/sys/fs/smbfs: smbfs_vfsops.c src/sys/fs/udf: udf_subr.c udf_vfsops.c src/sys/fs/union: union_vfsops.c src/sys/fs/v7fs: v7fs_vfsops.c src/sys/miscfs/procfs: procfs_subr.c src/sys/nfs: nfs_subs.c nfs_vfsops.c src/sys/rump/librump/rumpvfs: rump_vfs.c src/sys/ufs/chfs: chfs_vnode.c src/sys/ufs/ext2fs: ext2fs_vfsops.c src/sys/ufs/ffs: ffs_snapshot.c ffs_vfsops.c src/sys/ufs/lfs: lfs_segment.c Log Message: KASSERT(mutex_owned(vp->v_interlock)) in vnode iterator selector. To generate a diff of this commit: cvs rdiff -u -r1.124 -r1.125 src/sys/fs/msdosfs/msdosfs_vfsops.c cvs rdiff -u -r1.119 -r1.120 src/sys/fs/puffs/puffs_vfsops.c cvs rdiff -u -r1.105 -r1.106 src/sys/fs/smbfs/smbfs_vfsops.c cvs rdiff -u -r1.138 -r1.139 src/sys/fs/udf/udf_subr.c cvs rdiff -u -r1.74 -r1.75 src/sys/fs/udf/udf_vfsops.c cvs rdiff -u -r1.77 -r1.78 src/sys/fs/union/union_vfsops.c cvs rdiff -u -r1.12 -r1.13 src/sys/fs/v7fs/v7fs_vfsops.c cvs rdiff -u -r1.107 -r1.108 src/sys/miscfs/procfs/procfs_subr.c cvs rdiff -u -r1.228 -r1.229 src/sys/nfs/nfs_subs.c cvs rdiff -u -r1.232 -r1.233 src/sys/nfs/nfs_vfsops.c cvs rdiff -u -r1.86 -r1.87 src/sys/rump/librump/rumpvfs/rump_vfs.c cvs rdiff -u -r1.14 -r1.15 src/sys/ufs/chfs/chfs_vnode.c cvs rdiff -u -r1.205 -r1.206 src/sys/ufs/ext2fs/ext2fs_vfsops.c cvs rdiff -u -r1.147 -r1.148 src/sys/ufs/ffs/ffs_snapshot.c cvs rdiff -u -r1.350 -r1.351 src/sys/ufs/ffs/ffs_vfsops.c cvs rdiff -u -r1.264 -r1.265 src/sys/ufs/lfs/lfs_segment.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/fs/msdosfs/msdosfs_vfsops.c diff -u src/sys/fs/msdosfs/msdosfs_vfsops.c:1.124 src/sys/fs/msdosfs/msdosfs_vfsops.c:1.125 --- src/sys/fs/msdosfs/msdosfs_vfsops.c:1.124 Wed Mar 1 10:41:28 2017 +++ src/sys/fs/msdosfs/msdosfs_vfsops.c Sat Apr 1 19:35:56 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: msdosfs_vfsops.c,v 1.124 2017/03/01 10:41:28 hannken Exp $ */ +/* $NetBSD: msdosfs_vfsops.c,v 1.125 2017/04/01 19:35:56 riastradh Exp $ */ /*- * Copyright (C) 1994, 1995, 1997 Wolfgang Solfrank. @@ -48,7 +48,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: msdosfs_vfsops.c,v 1.124 2017/03/01 10:41:28 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: msdosfs_vfsops.c,v 1.125 2017/04/01 19:35:56 riastradh Exp $"); #if defined(_KERNEL_OPT) #include "opt_compat_netbsd.h" @@ -971,6 +971,8 @@ msdosfs_sync_selector(void *cl, struct v struct msdosfs_sync_ctx *c = cl; struct denode *dep; + KASSERT(mutex_owned(vp->v_interlock)); + dep = VTODE(vp); if (c->waitfor == MNT_LAZY || vp->v_type == VNON || dep == NULL || (((dep->de_flag & Index: src/sys/fs/puffs/puffs_vfsops.c diff -u src/sys/fs/puffs/puffs_vfsops.c:1.119 src/sys/fs/puffs/puffs_vfsops.c:1.120 --- src/sys/fs/puffs/puffs_vfsops.c:1.119 Fri Feb 17 08:31:24 2017 +++ src/sys/fs/puffs/puffs_vfsops.c Sat Apr 1 19:35:56 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: puffs_vfsops.c,v 1.119 2017/02/17 08:31:24 hannken Exp $ */ +/* $NetBSD: puffs_vfsops.c,v 1.120 2017/04/01 19:35:56 riastradh Exp $ */ /* * Copyright (c) 2005, 2006 Antti Kantee. All Rights Reserved. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: puffs_vfsops.c,v 1.119 2017/02/17 08:31:24 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: puffs_vfsops.c,v 1.120 2017/04/01 19:35:56 riastradh Exp $"); #include <sys/param.h> #include <sys/kernel.h> @@ -511,6 +511,9 @@ puffs_vfsop_statvfs(struct mount *mp, st static bool pageflush_selector(void *cl, struct vnode *vp) { + + KASSERT(mutex_owned(vp->v_interlock)); + return vp->v_type == VREG && !(LIST_EMPTY(&vp->v_dirtyblkhd) && UVM_OBJ_IS_CLEAN(&vp->v_uobj)); } Index: src/sys/fs/smbfs/smbfs_vfsops.c diff -u src/sys/fs/smbfs/smbfs_vfsops.c:1.105 src/sys/fs/smbfs/smbfs_vfsops.c:1.106 --- src/sys/fs/smbfs/smbfs_vfsops.c:1.105 Fri Feb 17 08:31:24 2017 +++ src/sys/fs/smbfs/smbfs_vfsops.c Sat Apr 1 19:35:56 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: smbfs_vfsops.c,v 1.105 2017/02/17 08:31:24 hannken Exp $ */ +/* $NetBSD: smbfs_vfsops.c,v 1.106 2017/04/01 19:35:56 riastradh Exp $ */ /* * Copyright (c) 2000-2001, Boris Popov @@ -35,7 +35,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: smbfs_vfsops.c,v 1.105 2017/02/17 08:31:24 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: smbfs_vfsops.c,v 1.106 2017/04/01 19:35:56 riastradh Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -398,6 +398,8 @@ smbfs_sync_selector(void *cl, struct vno { struct smbnode *np; + KASSERT(mutex_owned(vp->v_interlock)); + np = VTOSMB(vp); if (np == NULL) return false; Index: src/sys/fs/udf/udf_subr.c diff -u src/sys/fs/udf/udf_subr.c:1.138 src/sys/fs/udf/udf_subr.c:1.139 --- src/sys/fs/udf/udf_subr.c:1.138 Tue May 24 09:55:57 2016 +++ src/sys/fs/udf/udf_subr.c Sat Apr 1 19:35:56 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: udf_subr.c,v 1.138 2016/05/24 09:55:57 reinoud Exp $ */ +/* $NetBSD: udf_subr.c,v 1.139 2017/04/01 19:35:56 riastradh Exp $ */ /* * Copyright (c) 2006, 2008 Reinoud Zandijk @@ -29,7 +29,7 @@ #include <sys/cdefs.h> #ifndef lint -__KERNEL_RCSID(0, "$NetBSD: udf_subr.c,v 1.138 2016/05/24 09:55:57 reinoud Exp $"); +__KERNEL_RCSID(0, "$NetBSD: udf_subr.c,v 1.139 2017/04/01 19:35:56 riastradh Exp $"); #endif /* not lint */ @@ -6393,7 +6393,11 @@ udf_sync_pass(struct udf_mount *ump, kau static bool udf_sync_selector(void *cl, struct vnode *vp) { - struct udf_node *udf_node = VTOI(vp); + struct udf_node *udf_node; + + KASSERT(mutex_owned(vp->v_interlock)); + + udf_node = VTOI(vp); if (vp->v_vflag & VV_SYSTEM) return false; Index: src/sys/fs/udf/udf_vfsops.c diff -u src/sys/fs/udf/udf_vfsops.c:1.74 src/sys/fs/udf/udf_vfsops.c:1.75 --- src/sys/fs/udf/udf_vfsops.c:1.74 Fri Feb 17 08:31:25 2017 +++ src/sys/fs/udf/udf_vfsops.c Sat Apr 1 19:35:56 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: udf_vfsops.c,v 1.74 2017/02/17 08:31:25 hannken Exp $ */ +/* $NetBSD: udf_vfsops.c,v 1.75 2017/04/01 19:35:56 riastradh Exp $ */ /* * Copyright (c) 2006, 2008 Reinoud Zandijk @@ -28,7 +28,7 @@ #include <sys/cdefs.h> #ifndef lint -__KERNEL_RCSID(0, "$NetBSD: udf_vfsops.c,v 1.74 2017/02/17 08:31:25 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: udf_vfsops.c,v 1.75 2017/04/01 19:35:56 riastradh Exp $"); #endif /* not lint */ @@ -442,6 +442,8 @@ static bool udf_sanity_selector(void *cl, struct vnode *vp) { + KASSERT(mutex_owned(vp->v_interlock)); + vprint("", vp); if (VOP_ISLOCKED(vp) == LK_EXCLUSIVE) { printf(" is locked\n"); Index: src/sys/fs/union/union_vfsops.c diff -u src/sys/fs/union/union_vfsops.c:1.77 src/sys/fs/union/union_vfsops.c:1.78 --- src/sys/fs/union/union_vfsops.c:1.77 Mon Mar 6 10:10:07 2017 +++ src/sys/fs/union/union_vfsops.c Sat Apr 1 19:35:56 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: union_vfsops.c,v 1.77 2017/03/06 10:10:07 hannken Exp $ */ +/* $NetBSD: union_vfsops.c,v 1.78 2017/04/01 19:35:56 riastradh Exp $ */ /* * Copyright (c) 1994 The Regents of the University of California. @@ -77,7 +77,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: union_vfsops.c,v 1.77 2017/03/06 10:10:07 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: union_vfsops.c,v 1.78 2017/04/01 19:35:56 riastradh Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -322,6 +322,8 @@ union_unmount_selector(void *cl, struct { int *count = cl; + KASSERT(mutex_owned(vp->v_interlock)); + *count += 1; return false; } Index: src/sys/fs/v7fs/v7fs_vfsops.c diff -u src/sys/fs/v7fs/v7fs_vfsops.c:1.12 src/sys/fs/v7fs/v7fs_vfsops.c:1.13 --- src/sys/fs/v7fs/v7fs_vfsops.c:1.12 Mon Dec 29 15:29:38 2014 +++ src/sys/fs/v7fs/v7fs_vfsops.c Sat Apr 1 19:35:57 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: v7fs_vfsops.c,v 1.12 2014/12/29 15:29:38 hannken Exp $ */ +/* $NetBSD: v7fs_vfsops.c,v 1.13 2017/04/01 19:35:57 riastradh Exp $ */ /*- * Copyright (c) 2004, 2011 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: v7fs_vfsops.c,v 1.12 2014/12/29 15:29:38 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: v7fs_vfsops.c,v 1.13 2017/04/01 19:35:57 riastradh Exp $"); #if defined _KERNEL_OPT #include "opt_v7fs.h" #endif @@ -369,8 +369,11 @@ v7fs_statvfs(struct mount *mp, struct st static bool v7fs_sync_selector(void *cl, struct vnode *vp) { - struct v7fs_node *v7fs_node = vp->v_data; + struct v7fs_node *v7fs_node; + + KASSERT(mutex_owned(vp->v_interlock)); + v7fs_node = vp->v_data; if (v7fs_node == NULL) return false; if (!v7fs_inode_allocated(&v7fs_node->inode)) Index: src/sys/miscfs/procfs/procfs_subr.c diff -u src/sys/miscfs/procfs/procfs_subr.c:1.107 src/sys/miscfs/procfs/procfs_subr.c:1.108 --- src/sys/miscfs/procfs/procfs_subr.c:1.107 Thu Mar 30 20:16:29 2017 +++ src/sys/miscfs/procfs/procfs_subr.c Sat Apr 1 19:35:57 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: procfs_subr.c,v 1.107 2017/03/30 20:16:29 christos Exp $ */ +/* $NetBSD: procfs_subr.c,v 1.108 2017/04/01 19:35:57 riastradh Exp $ */ /*- * Copyright (c) 2006, 2007, 2008 The NetBSD Foundation, Inc. @@ -102,7 +102,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: procfs_subr.c,v 1.107 2017/03/30 20:16:29 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: procfs_subr.c,v 1.108 2017/04/01 19:35:57 riastradh Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -355,7 +355,11 @@ static bool procfs_revoke_selector(void *arg, struct vnode *vp) { struct proc *p = arg; - struct pfsnode *pfs = VTOPFS(vp); + struct pfsnode *pfs; + + KASSERT(mutex_owned(vp->v_interlock)); + + pfs = VTOPFS(vp); return (pfs != NULL && pfs->pfs_pid == p->p_pid); } Index: src/sys/nfs/nfs_subs.c diff -u src/sys/nfs/nfs_subs.c:1.228 src/sys/nfs/nfs_subs.c:1.229 --- src/sys/nfs/nfs_subs.c:1.228 Fri Jun 10 13:27:16 2016 +++ src/sys/nfs/nfs_subs.c Sat Apr 1 19:35:57 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: nfs_subs.c,v 1.228 2016/06/10 13:27:16 ozaki-r Exp $ */ +/* $NetBSD: nfs_subs.c,v 1.229 2017/04/01 19:35:57 riastradh Exp $ */ /* * Copyright (c) 1989, 1993 @@ -70,7 +70,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: nfs_subs.c,v 1.228 2016/06/10 13:27:16 ozaki-r Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nfs_subs.c,v 1.229 2017/04/01 19:35:57 riastradh Exp $"); #ifdef _KERNEL_OPT #include "opt_nfs.h" @@ -1753,6 +1753,8 @@ nfs_clearcommit_selector(void *cl, struc struct nfsnode *np; struct vm_page *pg; + KASSERT(mutex_owned(vp->v_interlock)); + np = VTONFS(vp); if (vp->v_type != VREG || vp->v_mount != c->mp || np == NULL) return false; Index: src/sys/nfs/nfs_vfsops.c diff -u src/sys/nfs/nfs_vfsops.c:1.232 src/sys/nfs/nfs_vfsops.c:1.233 --- src/sys/nfs/nfs_vfsops.c:1.232 Fri Feb 17 08:31:25 2017 +++ src/sys/nfs/nfs_vfsops.c Sat Apr 1 19:35:57 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: nfs_vfsops.c,v 1.232 2017/02/17 08:31:25 hannken Exp $ */ +/* $NetBSD: nfs_vfsops.c,v 1.233 2017/04/01 19:35:57 riastradh Exp $ */ /* * Copyright (c) 1989, 1993, 1995 @@ -35,7 +35,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: nfs_vfsops.c,v 1.232 2017/02/17 08:31:25 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nfs_vfsops.c,v 1.233 2017/04/01 19:35:57 riastradh Exp $"); #if defined(_KERNEL_OPT) #include "opt_nfs.h" @@ -960,6 +960,8 @@ static bool nfs_sync_selector(void *cl, struct vnode *vp) { + KASSERT(mutex_owned(vp->v_interlock)); + return !LIST_EMPTY(&vp->v_dirtyblkhd) || !UVM_OBJ_IS_CLEAN(&vp->v_uobj); } Index: src/sys/rump/librump/rumpvfs/rump_vfs.c diff -u src/sys/rump/librump/rumpvfs/rump_vfs.c:1.86 src/sys/rump/librump/rumpvfs/rump_vfs.c:1.87 --- src/sys/rump/librump/rumpvfs/rump_vfs.c:1.86 Thu Nov 17 23:15:38 2016 +++ src/sys/rump/librump/rumpvfs/rump_vfs.c Sat Apr 1 19:35:57 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: rump_vfs.c,v 1.86 2016/11/17 23:15:38 pgoyette Exp $ */ +/* $NetBSD: rump_vfs.c,v 1.87 2017/04/01 19:35:57 riastradh Exp $ */ /* * Copyright (c) 2008 Antti Kantee. All Rights Reserved. @@ -29,7 +29,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rump_vfs.c,v 1.86 2016/11/17 23:15:38 pgoyette Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rump_vfs.c,v 1.87 2017/04/01 19:35:57 riastradh Exp $"); #include <sys/param.h> #include <sys/buf.h> @@ -476,6 +476,8 @@ rump_print_selector(void *cl, struct vno { int *full = cl; + KASSERT(mutex_owned(vp->v_interlock)); + vfs_vnode_print(vp, *full, (void *)rumpuser_dprintf); return false; } Index: src/sys/ufs/chfs/chfs_vnode.c diff -u src/sys/ufs/chfs/chfs_vnode.c:1.14 src/sys/ufs/chfs/chfs_vnode.c:1.15 --- src/sys/ufs/chfs/chfs_vnode.c:1.14 Sun Jan 11 17:29:57 2015 +++ src/sys/ufs/chfs/chfs_vnode.c Sat Apr 1 19:35:57 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: chfs_vnode.c,v 1.14 2015/01/11 17:29:57 hannken Exp $ */ +/* $NetBSD: chfs_vnode.c,v 1.15 2017/04/01 19:35:57 riastradh Exp $ */ /*- * Copyright (c) 2010 Department of Software Engineering, @@ -47,6 +47,8 @@ chfs_vnode_lookup_selector(void *ctx, st { ino_t *ino = ctx; + KASSERT(mutex_owned(vp->v_interlock)); + return (VTOI(vp) != NULL && VTOI(vp)->ino == *ino); } struct vnode * Index: src/sys/ufs/ext2fs/ext2fs_vfsops.c diff -u src/sys/ufs/ext2fs/ext2fs_vfsops.c:1.205 src/sys/ufs/ext2fs/ext2fs_vfsops.c:1.206 --- src/sys/ufs/ext2fs/ext2fs_vfsops.c:1.205 Fri Feb 17 08:31:26 2017 +++ src/sys/ufs/ext2fs/ext2fs_vfsops.c Sat Apr 1 19:35:57 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: ext2fs_vfsops.c,v 1.205 2017/02/17 08:31:26 hannken Exp $ */ +/* $NetBSD: ext2fs_vfsops.c,v 1.206 2017/04/01 19:35:57 riastradh Exp $ */ /* * Copyright (c) 1989, 1991, 1993, 1994 @@ -60,7 +60,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ext2fs_vfsops.c,v 1.205 2017/02/17 08:31:26 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ext2fs_vfsops.c,v 1.206 2017/04/01 19:35:57 riastradh Exp $"); #if defined(_KERNEL_OPT) #include "opt_compat_netbsd.h" @@ -882,6 +882,8 @@ ext2fs_sync_selector(void *cl, struct vn { struct inode *ip; + KASSERT(mutex_owned(vp->v_interlock)); + ip = VTOI(vp); /* * Skip the vnode/inode if inaccessible. Index: src/sys/ufs/ffs/ffs_snapshot.c diff -u src/sys/ufs/ffs/ffs_snapshot.c:1.147 src/sys/ufs/ffs/ffs_snapshot.c:1.148 --- src/sys/ufs/ffs/ffs_snapshot.c:1.147 Sat Mar 18 05:29:16 2017 +++ src/sys/ufs/ffs/ffs_snapshot.c Sat Apr 1 19:35:56 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: ffs_snapshot.c,v 1.147 2017/03/18 05:29:16 riastradh Exp $ */ +/* $NetBSD: ffs_snapshot.c,v 1.148 2017/04/01 19:35:56 riastradh Exp $ */ /* * Copyright 2000 Marshall Kirk McKusick. All Rights Reserved. @@ -38,7 +38,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ffs_snapshot.c,v 1.147 2017/03/18 05:29:16 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ffs_snapshot.c,v 1.148 2017/04/01 19:35:56 riastradh Exp $"); #if defined(_KERNEL_OPT) #include "opt_ffs.h" @@ -630,6 +630,8 @@ snapshot_expunge_selector(void *cl, stru struct snapshot_expunge_ctx *c = cl; struct inode *xp; + KASSERT(mutex_owned(xvp->v_interlock)); + xp = VTOI(xvp); if (xvp->v_type == VNON || VTOI(xvp) == NULL || (xp->i_flags & SF_SNAPSHOT)) Index: src/sys/ufs/ffs/ffs_vfsops.c diff -u src/sys/ufs/ffs/ffs_vfsops.c:1.350 src/sys/ufs/ffs/ffs_vfsops.c:1.351 --- src/sys/ufs/ffs/ffs_vfsops.c:1.350 Fri Mar 10 20:38:28 2017 +++ src/sys/ufs/ffs/ffs_vfsops.c Sat Apr 1 19:35:56 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: ffs_vfsops.c,v 1.350 2017/03/10 20:38:28 jdolecek Exp $ */ +/* $NetBSD: ffs_vfsops.c,v 1.351 2017/04/01 19:35:56 riastradh Exp $ */ /*- * Copyright (c) 2008, 2009 The NetBSD Foundation, Inc. @@ -61,7 +61,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ffs_vfsops.c,v 1.350 2017/03/10 20:38:28 jdolecek Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ffs_vfsops.c,v 1.351 2017/04/01 19:35:56 riastradh Exp $"); #if defined(_KERNEL_OPT) #include "opt_ffs.h" @@ -1843,6 +1843,8 @@ ffs_sync_selector(void *cl, struct vnode struct ffs_sync_ctx *c = cl; struct inode *ip; + KASSERT(mutex_owned(vp->v_interlock)); + ip = VTOI(vp); /* * Skip the vnode/inode if inaccessible. Index: src/sys/ufs/lfs/lfs_segment.c diff -u src/sys/ufs/lfs/lfs_segment.c:1.264 src/sys/ufs/lfs/lfs_segment.c:1.265 --- src/sys/ufs/lfs/lfs_segment.c:1.264 Mon Mar 13 14:24:20 2017 +++ src/sys/ufs/lfs/lfs_segment.c Sat Apr 1 19:35:56 2017 @@ -1,4 +1,4 @@ -/* $NetBSD: lfs_segment.c,v 1.264 2017/03/13 14:24:20 riastradh Exp $ */ +/* $NetBSD: lfs_segment.c,v 1.265 2017/04/01 19:35:56 riastradh Exp $ */ /*- * Copyright (c) 1999, 2000, 2001, 2002, 2003 The NetBSD Foundation, Inc. @@ -60,7 +60,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: lfs_segment.c,v 1.264 2017/03/13 14:24:20 riastradh Exp $"); +__KERNEL_RCSID(0, "$NetBSD: lfs_segment.c,v 1.265 2017/04/01 19:35:56 riastradh Exp $"); #ifdef DEBUG # define vndebug(vp, str) do { \ @@ -484,9 +484,12 @@ static bool lfs_writevnodes_selector(void *cl, struct vnode *vp) { struct lfs_writevnodes_ctx *c = cl; - struct inode *ip = VTOI(vp); + struct inode *ip; int op = c->op; + KASSERT(mutex_owned(vp->v_interlock)); + + ip = VTOI(vp); if (ip == NULL || vp->v_type == VNON) return false; if ((op == VN_DIROP && !(vp->v_uflag & VU_DIROP)) ||