Module Name: src Committed By: hannken Date: Wed Jul 21 17:52:14 UTC 2010
Modified Files: src/external/cddl/osnet/dist/uts/common/fs/zfs: zfs_vfsops.c zfs_znode.c src/sys/fs/adosfs: adutil.c src/sys/fs/cd9660: cd9660_node.c src/sys/fs/efs: efs_ihash.c src/sys/fs/filecorefs: filecore_node.c src/sys/fs/hfs: hfs_nhash.c src/sys/fs/msdosfs: msdosfs_denode.c msdosfs_vfsops.c src/sys/fs/nilfs: nilfs_subr.c src/sys/fs/ntfs: ntfs_vfsops.c src/sys/fs/ptyfs: ptyfs_subr.c src/sys/fs/puffs: puffs_node.c puffs_vfsops.c src/sys/fs/smbfs: smbfs_node.c smbfs_vfsops.c src/sys/fs/sysvbfs: sysvbfs_vfsops.c src/sys/fs/tmpfs: tmpfs_subr.c src/sys/fs/udf: udf_subr.c src/sys/fs/union: union_subr.c src/sys/kern: vfs_cache.c vfs_subr.c src/sys/miscfs/fdesc: fdesc_vnops.c src/sys/miscfs/genfs: layer_subr.c src/sys/miscfs/kernfs: kernfs_subr.c src/sys/miscfs/procfs: procfs_subr.c src/sys/miscfs/syncfs: sync_subr.c src/sys/nfs: nfs_node.c nfs_vfsops.c src/sys/rump/librump/rumpvfs: rumpfs.c src/sys/ufs/ext2fs: ext2fs_vfsops.c src/sys/ufs/ffs: ffs_vfsops.c src/sys/ufs/lfs: lfs_segment.c src/sys/ufs/ufs: ufs_ihash.c ufs_quota.c Log Message: Make holding v_interlock mandatory for callers of vget(). Announced some time ago on tech-kern. To generate a diff of this commit: cvs rdiff -u -r1.4 -r1.5 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c cvs rdiff -u -r1.8 -r1.9 \ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c cvs rdiff -u -r1.12 -r1.13 src/sys/fs/adosfs/adutil.c cvs rdiff -u -r1.26 -r1.27 src/sys/fs/cd9660/cd9660_node.c cvs rdiff -u -r1.5 -r1.6 src/sys/fs/efs/efs_ihash.c cvs rdiff -u -r1.21 -r1.22 src/sys/fs/filecorefs/filecore_node.c cvs rdiff -u -r1.10 -r1.11 src/sys/fs/hfs/hfs_nhash.c cvs rdiff -u -r1.39 -r1.40 src/sys/fs/msdosfs/msdosfs_denode.c cvs rdiff -u -r1.86 -r1.87 src/sys/fs/msdosfs/msdosfs_vfsops.c cvs rdiff -u -r1.5 -r1.6 src/sys/fs/nilfs/nilfs_subr.c cvs rdiff -u -r1.83 -r1.84 src/sys/fs/ntfs/ntfs_vfsops.c cvs rdiff -u -r1.20 -r1.21 src/sys/fs/ptyfs/ptyfs_subr.c cvs rdiff -u -r1.15 -r1.16 src/sys/fs/puffs/puffs_node.c cvs rdiff -u -r1.94 -r1.95 src/sys/fs/puffs/puffs_vfsops.c cvs rdiff -u -r1.44 -r1.45 src/sys/fs/smbfs/smbfs_node.c cvs rdiff -u -r1.92 -r1.93 src/sys/fs/smbfs/smbfs_vfsops.c cvs rdiff -u -r1.33 -r1.34 src/sys/fs/sysvbfs/sysvbfs_vfsops.c cvs rdiff -u -r1.58 -r1.59 src/sys/fs/tmpfs/tmpfs_subr.c cvs rdiff -u -r1.106 -r1.107 src/sys/fs/udf/udf_subr.c cvs rdiff -u -r1.38 -r1.39 src/sys/fs/union/union_subr.c cvs rdiff -u -r1.86 -r1.87 src/sys/kern/vfs_cache.c cvs rdiff -u -r1.409 -r1.410 src/sys/kern/vfs_subr.c cvs rdiff -u -r1.111 -r1.112 src/sys/miscfs/fdesc/fdesc_vnops.c cvs rdiff -u -r1.30 -r1.31 src/sys/miscfs/genfs/layer_subr.c cvs rdiff -u -r1.22 -r1.23 src/sys/miscfs/kernfs/kernfs_subr.c cvs rdiff -u -r1.97 -r1.98 src/sys/miscfs/procfs/procfs_subr.c cvs rdiff -u -r1.42 -r1.43 src/sys/miscfs/syncfs/sync_subr.c cvs rdiff -u -r1.112 -r1.113 src/sys/nfs/nfs_node.c cvs rdiff -u -r1.215 -r1.216 src/sys/nfs/nfs_vfsops.c cvs rdiff -u -r1.62 -r1.63 src/sys/rump/librump/rumpvfs/rumpfs.c cvs rdiff -u -r1.157 -r1.158 src/sys/ufs/ext2fs/ext2fs_vfsops.c cvs rdiff -u -r1.259 -r1.260 src/sys/ufs/ffs/ffs_vfsops.c cvs rdiff -u -r1.216 -r1.217 src/sys/ufs/lfs/lfs_segment.c cvs rdiff -u -r1.29 -r1.30 src/sys/ufs/ufs/ufs_ihash.c cvs rdiff -u -r1.66 -r1.67 src/sys/ufs/ufs/ufs_quota.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c:1.4 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c:1.5 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c:1.4 Sat Feb 27 23:43:53 2010 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c Wed Jul 21 17:52:09 2010 @@ -207,7 +207,7 @@ } vmark(mvp, vp); mutex_exit(&mntvnode_lock); - error = vget(vp, LK_EXCLUSIVE | LK_INTERLOCK); + error = vget(vp, LK_EXCLUSIVE); if (error) { mutex_enter(&mntvnode_lock); nvp = vunmark(mvp); Index: src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c diff -u src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c:1.8 src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c:1.9 --- src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c:1.8 Thu Jun 24 13:03:05 2010 +++ src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_znode.c Wed Jul 21 17:52:09 2010 @@ -949,7 +949,7 @@ if ((vp = ZTOV(zp)) != NULL) { mutex_enter(&vp->v_interlock); mutex_exit(&zp->z_lock); - if (vget(vp, LK_INTERLOCK) != 0) { + if (vget(vp, 0) != 0) { dmu_buf_rele(db, NULL); mutex_exit(&vp->v_interlock); goto again; Index: src/sys/fs/adosfs/adutil.c diff -u src/sys/fs/adosfs/adutil.c:1.12 src/sys/fs/adosfs/adutil.c:1.13 --- src/sys/fs/adosfs/adutil.c:1.12 Thu Jul 1 13:00:55 2010 +++ src/sys/fs/adosfs/adutil.c Wed Jul 21 17:52:09 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: adutil.c,v 1.12 2010/07/01 13:00:55 hannken Exp $ */ +/* $NetBSD: adutil.c,v 1.13 2010/07/21 17:52:09 hannken Exp $ */ /* * Copyright (c) 1994 Christian E. Hopps @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: adutil.c,v 1.12 2010/07/01 13:00:55 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: adutil.c,v 1.13 2010/07/21 17:52:09 hannken Exp $"); #include <sys/param.h> #include <sys/vnode.h> @@ -70,7 +70,7 @@ vp = ATOV(ap); mutex_enter(&vp->v_interlock); simple_unlock(&adosfs_hashlock); - if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK)) + if (vget(vp, LK_EXCLUSIVE)) goto start_over; return (ATOV(ap)); } Index: src/sys/fs/cd9660/cd9660_node.c diff -u src/sys/fs/cd9660/cd9660_node.c:1.26 src/sys/fs/cd9660/cd9660_node.c:1.27 --- src/sys/fs/cd9660/cd9660_node.c:1.26 Thu Jul 1 13:00:55 2010 +++ src/sys/fs/cd9660/cd9660_node.c Wed Jul 21 17:52:09 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: cd9660_node.c,v 1.26 2010/07/01 13:00:55 hannken Exp $ */ +/* $NetBSD: cd9660_node.c,v 1.27 2010/07/21 17:52:09 hannken Exp $ */ /*- * Copyright (c) 1982, 1986, 1989, 1994 @@ -37,7 +37,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: cd9660_node.c,v 1.26 2010/07/01 13:00:55 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: cd9660_node.c,v 1.27 2010/07/21 17:52:09 hannken Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -151,7 +151,7 @@ } else { mutex_enter(&vp->v_interlock); mutex_exit(&cd9660_ihash_lock); - if (vget(vp, flags | LK_INTERLOCK)) + if (vget(vp, flags)) goto loop; } return (vp); Index: src/sys/fs/efs/efs_ihash.c diff -u src/sys/fs/efs/efs_ihash.c:1.5 src/sys/fs/efs/efs_ihash.c:1.6 --- src/sys/fs/efs/efs_ihash.c:1.5 Thu Jul 1 13:00:55 2010 +++ src/sys/fs/efs/efs_ihash.c Wed Jul 21 17:52:09 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: efs_ihash.c,v 1.5 2010/07/01 13:00:55 hannken Exp $ */ +/* $NetBSD: efs_ihash.c,v 1.6 2010/07/21 17:52:09 hannken Exp $ */ /* * Copyright (c) 1982, 1986, 1989, 1991, 1993 @@ -36,7 +36,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: efs_ihash.c,v 1.5 2010/07/01 13:00:55 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: efs_ihash.c,v 1.6 2010/07/21 17:52:09 hannken Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -146,7 +146,7 @@ } else { mutex_enter(&vp->v_interlock); mutex_exit(&efs_ihash_lock); - if (vget(vp, flags | LK_INTERLOCK)) + if (vget(vp, flags)) goto loop; } return (vp); Index: src/sys/fs/filecorefs/filecore_node.c diff -u src/sys/fs/filecorefs/filecore_node.c:1.21 src/sys/fs/filecorefs/filecore_node.c:1.22 --- src/sys/fs/filecorefs/filecore_node.c:1.21 Thu Jul 1 13:00:55 2010 +++ src/sys/fs/filecorefs/filecore_node.c Wed Jul 21 17:52:09 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: filecore_node.c,v 1.21 2010/07/01 13:00:55 hannken Exp $ */ +/* $NetBSD: filecore_node.c,v 1.22 2010/07/21 17:52:09 hannken Exp $ */ /*- * Copyright (c) 1982, 1986, 1989, 1994 @@ -67,7 +67,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: filecore_node.c,v 1.21 2010/07/01 13:00:55 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: filecore_node.c,v 1.22 2010/07/21 17:52:09 hannken Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -174,7 +174,7 @@ vp = ITOV(ip); mutex_enter(&vp->v_interlock); simple_unlock(&filecore_ihash_slock); - if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK)) + if (vget(vp, LK_EXCLUSIVE)) goto loop; return (vp); } Index: src/sys/fs/hfs/hfs_nhash.c diff -u src/sys/fs/hfs/hfs_nhash.c:1.10 src/sys/fs/hfs/hfs_nhash.c:1.11 --- src/sys/fs/hfs/hfs_nhash.c:1.10 Thu Jul 1 13:00:55 2010 +++ src/sys/fs/hfs/hfs_nhash.c Wed Jul 21 17:52:10 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: hfs_nhash.c,v 1.10 2010/07/01 13:00:55 hannken Exp $ */ +/* $NetBSD: hfs_nhash.c,v 1.11 2010/07/21 17:52:10 hannken Exp $ */ /*- * Copyright (c) 2005, 2007 The NetBSD Foundation, Inc. @@ -59,7 +59,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: hfs_nhash.c,v 1.10 2010/07/01 13:00:55 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: hfs_nhash.c,v 1.11 2010/07/21 17:52:10 hannken Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -131,7 +131,7 @@ } else { mutex_enter(&vp->v_interlock); mutex_exit(&hfs_nhash_lock); - if (vget(vp, flags | LK_INTERLOCK)) + if (vget(vp, flags)) goto loop; } return vp; Index: src/sys/fs/msdosfs/msdosfs_denode.c diff -u src/sys/fs/msdosfs/msdosfs_denode.c:1.39 src/sys/fs/msdosfs/msdosfs_denode.c:1.40 --- src/sys/fs/msdosfs/msdosfs_denode.c:1.39 Thu Jun 24 13:03:09 2010 +++ src/sys/fs/msdosfs/msdosfs_denode.c Wed Jul 21 17:52:10 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: msdosfs_denode.c,v 1.39 2010/06/24 13:03:09 hannken Exp $ */ +/* $NetBSD: msdosfs_denode.c,v 1.40 2010/07/21 17:52:10 hannken Exp $ */ /*- * Copyright (C) 1994, 1995, 1997 Wolfgang Solfrank. @@ -48,7 +48,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: msdosfs_denode.c,v 1.39 2010/06/24 13:03:09 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: msdosfs_denode.c,v 1.40 2010/07/21 17:52:10 hannken Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -173,7 +173,7 @@ } else { mutex_enter(&vp->v_interlock); mutex_exit(&msdosfs_ihash_lock); - if (vget(vp, flags | LK_INTERLOCK)) + if (vget(vp, flags)) goto loop; } return (dep); Index: src/sys/fs/msdosfs/msdosfs_vfsops.c diff -u src/sys/fs/msdosfs/msdosfs_vfsops.c:1.86 src/sys/fs/msdosfs/msdosfs_vfsops.c:1.87 --- src/sys/fs/msdosfs/msdosfs_vfsops.c:1.86 Thu Jun 24 13:03:09 2010 +++ src/sys/fs/msdosfs/msdosfs_vfsops.c Wed Jul 21 17:52:10 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: msdosfs_vfsops.c,v 1.86 2010/06/24 13:03:09 hannken Exp $ */ +/* $NetBSD: msdosfs_vfsops.c,v 1.87 2010/07/21 17:52:10 hannken 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.86 2010/06/24 13:03:09 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: msdosfs_vfsops.c,v 1.87 2010/07/21 17:52:10 hannken Exp $"); #if defined(_KERNEL_OPT) #include "opt_compat_netbsd.h" @@ -962,9 +962,9 @@ * threads waiting on fstrans may have locked vnodes. */ if (is_suspending) - lk_flags = LK_INTERLOCK; + lk_flags = 0; else - lk_flags = LK_INTERLOCK | LK_EXCLUSIVE | LK_NOWAIT; + lk_flags = LK_EXCLUSIVE | LK_NOWAIT; /* * Write back each (modified) denode. */ Index: src/sys/fs/nilfs/nilfs_subr.c diff -u src/sys/fs/nilfs/nilfs_subr.c:1.5 src/sys/fs/nilfs/nilfs_subr.c:1.6 --- src/sys/fs/nilfs/nilfs_subr.c:1.5 Thu Jun 24 12:15:46 2010 +++ src/sys/fs/nilfs/nilfs_subr.c Wed Jul 21 17:52:10 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: nilfs_subr.c,v 1.5 2010/06/24 12:15:46 reinoud Exp $ */ +/* $NetBSD: nilfs_subr.c,v 1.6 2010/07/21 17:52:10 hannken Exp $ */ /* * Copyright (c) 2008, 2009 Reinoud Zandijk @@ -28,7 +28,7 @@ #include <sys/cdefs.h> #ifndef lint -__KERNEL_RCSID(0, "$NetBSD: nilfs_subr.c,v 1.5 2010/06/24 12:15:46 reinoud Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nilfs_subr.c,v 1.6 2010/07/21 17:52:10 hannken Exp $"); #endif /* not lint */ #include <sys/param.h> @@ -784,7 +784,7 @@ assert(vp); mutex_enter(&vp->v_interlock); mutex_exit(&ump->ihash_lock); - if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK)) + if (vget(vp, LK_EXCLUSIVE)) goto loop; return node; } Index: src/sys/fs/ntfs/ntfs_vfsops.c diff -u src/sys/fs/ntfs/ntfs_vfsops.c:1.83 src/sys/fs/ntfs/ntfs_vfsops.c:1.84 --- src/sys/fs/ntfs/ntfs_vfsops.c:1.83 Mon Jul 19 08:17:44 2010 +++ src/sys/fs/ntfs/ntfs_vfsops.c Wed Jul 21 17:52:10 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: ntfs_vfsops.c,v 1.83 2010/07/19 08:17:44 hannken Exp $ */ +/* $NetBSD: ntfs_vfsops.c,v 1.84 2010/07/21 17:52:10 hannken Exp $ */ /*- * Copyright (c) 1998, 1999 Semen Ustimenko @@ -29,7 +29,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ntfs_vfsops.c,v 1.83 2010/07/19 08:17:44 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ntfs_vfsops.c,v 1.84 2010/07/21 17:52:10 hannken Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -785,7 +785,7 @@ if (vp) { mutex_enter(&vp->v_interlock); ntfs_ntput(ip); - if (vget(vp, LK_INTERLOCK | lkflags) != 0) + if (vget(vp, lkflags) != 0) goto loop; *vpp = vp; return 0; Index: src/sys/fs/ptyfs/ptyfs_subr.c diff -u src/sys/fs/ptyfs/ptyfs_subr.c:1.20 src/sys/fs/ptyfs/ptyfs_subr.c:1.21 --- src/sys/fs/ptyfs/ptyfs_subr.c:1.20 Thu Jul 1 13:00:55 2010 +++ src/sys/fs/ptyfs/ptyfs_subr.c Wed Jul 21 17:52:10 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: ptyfs_subr.c,v 1.20 2010/07/01 13:00:55 hannken Exp $ */ +/* $NetBSD: ptyfs_subr.c,v 1.21 2010/07/21 17:52:10 hannken Exp $ */ /* * Copyright (c) 1993 @@ -73,7 +73,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ptyfs_subr.c,v 1.20 2010/07/01 13:00:55 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ptyfs_subr.c,v 1.21 2010/07/21 17:52:10 hannken Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -369,7 +369,7 @@ } else { mutex_enter(&vp->v_interlock); mutex_exit(&ptyfs_used_slock); - if (vget(vp, flags | LK_INTERLOCK)) + if (vget(vp, flags)) goto loop; } return vp; Index: src/sys/fs/puffs/puffs_node.c diff -u src/sys/fs/puffs/puffs_node.c:1.15 src/sys/fs/puffs/puffs_node.c:1.16 --- src/sys/fs/puffs/puffs_node.c:1.15 Thu Nov 5 19:42:44 2009 +++ src/sys/fs/puffs/puffs_node.c Wed Jul 21 17:52:10 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: puffs_node.c,v 1.15 2009/11/05 19:42:44 pooka Exp $ */ +/* $NetBSD: puffs_node.c,v 1.16 2010/07/21 17:52:10 hannken Exp $ */ /* * Copyright (c) 2005, 2006, 2007 Antti Kantee. All Rights Reserved. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: puffs_node.c,v 1.15 2009/11/05 19:42:44 pooka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: puffs_node.c,v 1.16 2010/07/21 17:52:10 hannken Exp $"); #include <sys/param.h> #include <sys/hash.h> @@ -315,7 +315,7 @@ if (vp) { mutex_enter(&vp->v_interlock); mutex_exit(&pmp->pmp_lock); - if (vget(vp, LK_INTERLOCK) == 0) + if (vget(vp, 0) == 0) return 0; } else mutex_exit(&pmp->pmp_lock); @@ -397,7 +397,7 @@ mutex_enter(&vp->v_interlock); mutex_exit(&pmp->pmp_lock); - vgetflags = LK_INTERLOCK; + vgetflags = 0; if (lock) vgetflags |= LK_EXCLUSIVE | LK_RETRY; if ((rv = vget(vp, vgetflags))) Index: src/sys/fs/puffs/puffs_vfsops.c diff -u src/sys/fs/puffs/puffs_vfsops.c:1.94 src/sys/fs/puffs/puffs_vfsops.c:1.95 --- src/sys/fs/puffs/puffs_vfsops.c:1.94 Thu Jul 15 21:55:05 2010 +++ src/sys/fs/puffs/puffs_vfsops.c Wed Jul 21 17:52:10 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: puffs_vfsops.c,v 1.94 2010/07/15 21:55:05 pooka Exp $ */ +/* $NetBSD: puffs_vfsops.c,v 1.95 2010/07/21 17:52:10 hannken 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.94 2010/07/15 21:55:05 pooka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: puffs_vfsops.c,v 1.95 2010/07/21 17:52:10 hannken Exp $"); #include <sys/param.h> #include <sys/mount.h> @@ -558,7 +558,7 @@ * vnodes through other routes in any case. So there, * sync() doesn't actually sync. Happy now? */ - rv = vget(vp, LK_EXCLUSIVE | LK_NOWAIT | LK_INTERLOCK); + rv = vget(vp, LK_EXCLUSIVE | LK_NOWAIT); if (rv) { mutex_enter(&mntvnode_lock); if (rv == ENOENT) { Index: src/sys/fs/smbfs/smbfs_node.c diff -u src/sys/fs/smbfs/smbfs_node.c:1.44 src/sys/fs/smbfs/smbfs_node.c:1.45 --- src/sys/fs/smbfs/smbfs_node.c:1.44 Fri Jul 9 08:16:28 2010 +++ src/sys/fs/smbfs/smbfs_node.c Wed Jul 21 17:52:11 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: smbfs_node.c,v 1.44 2010/07/09 08:16:28 hannken Exp $ */ +/* $NetBSD: smbfs_node.c,v 1.45 2010/07/21 17:52:11 hannken Exp $ */ /* * Copyright (c) 2000-2001 Boris Popov @@ -35,7 +35,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: smbfs_node.c,v 1.44 2010/07/09 08:16:28 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: smbfs_node.c,v 1.45 2010/07/21 17:52:11 hannken Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -137,7 +137,7 @@ vp = SMBTOV(np); mutex_enter(&(vp)->v_interlock); mutex_exit(&smp->sm_hashlock); - if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK) != 0) + if (vget(vp, LK_EXCLUSIVE) != 0) goto retry; *vpp = vp; return (0); Index: src/sys/fs/smbfs/smbfs_vfsops.c diff -u src/sys/fs/smbfs/smbfs_vfsops.c:1.92 src/sys/fs/smbfs/smbfs_vfsops.c:1.93 --- src/sys/fs/smbfs/smbfs_vfsops.c:1.92 Fri Jul 9 08:16:28 2010 +++ src/sys/fs/smbfs/smbfs_vfsops.c Wed Jul 21 17:52:11 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: smbfs_vfsops.c,v 1.92 2010/07/09 08:16:28 hannken Exp $ */ +/* $NetBSD: smbfs_vfsops.c,v 1.93 2010/07/21 17:52:11 hannken Exp $ */ /* * Copyright (c) 2000-2001, Boris Popov @@ -35,7 +35,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: smbfs_vfsops.c,v 1.92 2010/07/09 08:16:28 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: smbfs_vfsops.c,v 1.93 2010/07/21 17:52:11 hannken Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -446,7 +446,7 @@ continue; } mutex_exit(&mntvnode_lock); - error = vget(vp, LK_EXCLUSIVE | LK_NOWAIT | LK_INTERLOCK); + error = vget(vp, LK_EXCLUSIVE | LK_NOWAIT); if (error) { mutex_enter(&mntvnode_lock); if (error == ENOENT) { Index: src/sys/fs/sysvbfs/sysvbfs_vfsops.c diff -u src/sys/fs/sysvbfs/sysvbfs_vfsops.c:1.33 src/sys/fs/sysvbfs/sysvbfs_vfsops.c:1.34 --- src/sys/fs/sysvbfs/sysvbfs_vfsops.c:1.33 Wed Jul 7 16:19:55 2010 +++ src/sys/fs/sysvbfs/sysvbfs_vfsops.c Wed Jul 21 17:52:11 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: sysvbfs_vfsops.c,v 1.33 2010/07/07 16:19:55 njoly Exp $ */ +/* $NetBSD: sysvbfs_vfsops.c,v 1.34 2010/07/21 17:52:11 hannken Exp $ */ /*- * Copyright (c) 2004 The NetBSD Foundation, Inc. @@ -30,7 +30,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sysvbfs_vfsops.c,v 1.33 2010/07/07 16:19:55 njoly Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sysvbfs_vfsops.c,v 1.34 2010/07/21 17:52:11 hannken Exp $"); #include <sys/types.h> #include <sys/param.h> @@ -314,7 +314,7 @@ v = bnode->vnode; mutex_enter(&v->v_interlock); mutex_exit(&mntvnode_lock); - err = vget(v, LK_EXCLUSIVE | LK_NOWAIT | LK_INTERLOCK); + err = vget(v, LK_EXCLUSIVE | LK_NOWAIT); if (err == 0) { err = VOP_FSYNC(v, cred, FSYNC_WAIT, 0, 0); vput(v); @@ -353,7 +353,7 @@ vp = bnode->vnode; mutex_enter(&vp->v_interlock); mutex_exit(&mntvnode_lock); - if (vget(vp, LK_EXCLUSIVE|LK_RETRY|LK_INTERLOCK) == 0) { + if (vget(vp, LK_EXCLUSIVE | LK_RETRY) == 0) { *vpp = vp; return 0; } else { Index: src/sys/fs/tmpfs/tmpfs_subr.c diff -u src/sys/fs/tmpfs/tmpfs_subr.c:1.58 src/sys/fs/tmpfs/tmpfs_subr.c:1.59 --- src/sys/fs/tmpfs/tmpfs_subr.c:1.58 Fri Jul 2 03:29:47 2010 +++ src/sys/fs/tmpfs/tmpfs_subr.c Wed Jul 21 17:52:11 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: tmpfs_subr.c,v 1.58 2010/07/02 03:29:47 rmind Exp $ */ +/* $NetBSD: tmpfs_subr.c,v 1.59 2010/07/21 17:52:11 hannken Exp $ */ /* * Copyright (c) 2005, 2006, 2007 The NetBSD Foundation, Inc. @@ -35,7 +35,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: tmpfs_subr.c,v 1.58 2010/07/02 03:29:47 rmind Exp $"); +__KERNEL_RCSID(0, "$NetBSD: tmpfs_subr.c,v 1.59 2010/07/21 17:52:11 hannken Exp $"); #include <sys/param.h> #include <sys/dirent.h> @@ -346,7 +346,7 @@ if ((vp = node->tn_vnode) != NULL) { mutex_enter(&vp->v_interlock); mutex_exit(&node->tn_vlock); - error = vget(vp, LK_EXCLUSIVE | LK_INTERLOCK); + error = vget(vp, LK_EXCLUSIVE); if (error == ENOENT) { /* vnode was reclaimed. */ continue; Index: src/sys/fs/udf/udf_subr.c diff -u src/sys/fs/udf/udf_subr.c:1.106 src/sys/fs/udf/udf_subr.c:1.107 --- src/sys/fs/udf/udf_subr.c:1.106 Thu Jul 1 13:00:55 2010 +++ src/sys/fs/udf/udf_subr.c Wed Jul 21 17:52:11 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: udf_subr.c,v 1.106 2010/07/01 13:00:55 hannken Exp $ */ +/* $NetBSD: udf_subr.c,v 1.107 2010/07/21 17:52:11 hannken 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.106 2010/07/01 13:00:55 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: udf_subr.c,v 1.107 2010/07/21 17:52:11 hannken Exp $"); #endif /* not lint */ @@ -3445,7 +3445,7 @@ assert(vp); mutex_enter(&vp->v_interlock); mutex_exit(&ump->ihash_lock); - if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK)) + if (vget(vp, LK_EXCLUSIVE)) goto loop; return udf_node; } @@ -6401,7 +6401,7 @@ } mutex_exit(&mntvnode_lock); - error = vget(vp, LK_EXCLUSIVE | LK_NOWAIT | LK_INTERLOCK); + error = vget(vp, LK_EXCLUSIVE | LK_NOWAIT); if (error) { mutex_enter(&mntvnode_lock); if (error == ENOENT) Index: src/sys/fs/union/union_subr.c diff -u src/sys/fs/union/union_subr.c:1.38 src/sys/fs/union/union_subr.c:1.39 --- src/sys/fs/union/union_subr.c:1.38 Fri Jul 16 08:23:28 2010 +++ src/sys/fs/union/union_subr.c Wed Jul 21 17:52:11 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: union_subr.c,v 1.38 2010/07/16 08:23:28 hannken Exp $ */ +/* $NetBSD: union_subr.c,v 1.39 2010/07/21 17:52:11 hannken Exp $ */ /* * Copyright (c) 1994 @@ -72,7 +72,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: union_subr.c,v 1.38 2010/07/16 08:23:28 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: union_subr.c,v 1.39 2010/07/21 17:52:11 hannken Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -396,7 +396,7 @@ (UNIONTOV(un)->v_mount == mp)) { vp = UNIONTOV(un); mutex_enter(&vp->v_interlock); - if (vget(vp, LK_INTERLOCK)) { + if (vget(vp, 0)) { union_list_unlock(hash); goto loop; } Index: src/sys/kern/vfs_cache.c diff -u src/sys/kern/vfs_cache.c:1.86 src/sys/kern/vfs_cache.c:1.87 --- src/sys/kern/vfs_cache.c:1.86 Wed Jul 21 09:01:36 2010 +++ src/sys/kern/vfs_cache.c Wed Jul 21 17:52:12 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: vfs_cache.c,v 1.86 2010/07/21 09:01:36 hannken Exp $ */ +/* $NetBSD: vfs_cache.c,v 1.87 2010/07/21 17:52:12 hannken Exp $ */ /*- * Copyright (c) 2008 The NetBSD Foundation, Inc. @@ -58,7 +58,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: vfs_cache.c,v 1.86 2010/07/21 09:01:36 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: vfs_cache.c,v 1.87 2010/07/21 17:52:12 hannken Exp $"); #include "opt_ddb.h" #include "opt_revcache.h" @@ -372,7 +372,7 @@ mutex_enter(&vp->v_interlock); mutex_exit(&ncp->nc_lock); mutex_exit(&cpup->cpu_lock); - error = vget(vp, LK_NOWAIT | LK_INTERLOCK); + error = vget(vp, LK_NOWAIT); if (error) { KASSERT(error == EBUSY); /* @@ -470,7 +470,7 @@ mutex_enter(&vp->v_interlock); mutex_exit(&ncp->nc_lock); mutex_exit(&cpup->cpu_lock); - error = vget(vp, LK_NOWAIT | LK_INTERLOCK); + error = vget(vp, LK_NOWAIT); if (error) { KASSERT(error == EBUSY); /* @@ -555,7 +555,7 @@ mutex_enter(&dvp->v_interlock); mutex_exit(&ncp->nc_lock); mutex_exit(namecache_lock); - error = vget(dvp, LK_NOWAIT | LK_INTERLOCK); + error = vget(dvp, LK_NOWAIT); if (error) { KASSERT(error == EBUSY); if (bufp) Index: src/sys/kern/vfs_subr.c diff -u src/sys/kern/vfs_subr.c:1.409 src/sys/kern/vfs_subr.c:1.410 --- src/sys/kern/vfs_subr.c:1.409 Wed Jul 21 09:06:38 2010 +++ src/sys/kern/vfs_subr.c Wed Jul 21 17:52:12 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: vfs_subr.c,v 1.409 2010/07/21 09:06:38 hannken Exp $ */ +/* $NetBSD: vfs_subr.c,v 1.410 2010/07/21 17:52:12 hannken Exp $ */ /*- * Copyright (c) 1997, 1998, 2004, 2005, 2007, 2008 The NetBSD Foundation, Inc. @@ -91,7 +91,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: vfs_subr.c,v 1.409 2010/07/21 09:06:38 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: vfs_subr.c,v 1.410 2010/07/21 17:52:12 hannken Exp $"); #include "opt_ddb.h" #include "opt_compat_netbsd.h" @@ -1274,6 +1274,7 @@ * grab the vnode, so the process is awakened when the transition is * completed, and an error returned to indicate that the vnode is no * longer usable (possibly having been changed to a new file system type). + * Called with v_interlock held. */ int vget(vnode_t *vp, int flags) @@ -1281,9 +1282,7 @@ int error = 0; KASSERT((vp->v_iflag & VI_MARKER) == 0); - - if ((flags & LK_INTERLOCK) == 0) - mutex_enter(&vp->v_interlock); + KASSERT(mutex_owned(&vp->v_interlock)); /* * Before adding a reference, we must remove the vnode @@ -2011,7 +2010,7 @@ } mutex_enter(&vp->v_interlock); mutex_exit(&device_lock); - if (vget(vp, LK_INTERLOCK) != 0) + if (vget(vp, 0) != 0) return 0; *vpp = vp; return 1; @@ -2043,7 +2042,7 @@ continue; } mutex_exit(&device_lock); - if (vget(vp, LK_INTERLOCK) == 0) { + if (vget(vp, 0) == 0) { VOP_REVOKE(vp, REVOKEALL); vrele(vp); } Index: src/sys/miscfs/fdesc/fdesc_vnops.c diff -u src/sys/miscfs/fdesc/fdesc_vnops.c:1.111 src/sys/miscfs/fdesc/fdesc_vnops.c:1.112 --- src/sys/miscfs/fdesc/fdesc_vnops.c:1.111 Fri Jul 16 10:41:12 2010 +++ src/sys/miscfs/fdesc/fdesc_vnops.c Wed Jul 21 17:52:12 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: fdesc_vnops.c,v 1.111 2010/07/16 10:41:12 hannken Exp $ */ +/* $NetBSD: fdesc_vnops.c,v 1.112 2010/07/21 17:52:12 hannken Exp $ */ /* * Copyright (c) 1992, 1993 @@ -41,7 +41,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: fdesc_vnops.c,v 1.111 2010/07/16 10:41:12 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: fdesc_vnops.c,v 1.112 2010/07/21 17:52:12 hannken Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -216,7 +216,7 @@ if (fd->fd_ix == ix && fd->fd_vnode->v_mount == mp) { mutex_enter(&fd->fd_vnode->v_interlock); mutex_exit(&fdcache_lock); - if (vget(fd->fd_vnode, LK_INTERLOCK | LK_EXCLUSIVE)) + if (vget(fd->fd_vnode, LK_EXCLUSIVE)) goto loop; *vpp = fd->fd_vnode; return 0; Index: src/sys/miscfs/genfs/layer_subr.c diff -u src/sys/miscfs/genfs/layer_subr.c:1.30 src/sys/miscfs/genfs/layer_subr.c:1.31 --- src/sys/miscfs/genfs/layer_subr.c:1.30 Fri Jul 2 03:16:00 2010 +++ src/sys/miscfs/genfs/layer_subr.c Wed Jul 21 17:52:12 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: layer_subr.c,v 1.30 2010/07/02 03:16:00 rmind Exp $ */ +/* $NetBSD: layer_subr.c,v 1.31 2010/07/21 17:52:12 hannken Exp $ */ /* * Copyright (c) 1999 National Aeronautics & Space Administration @@ -69,7 +69,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: layer_subr.c,v 1.30 2010/07/02 03:16:00 rmind Exp $"); +__KERNEL_RCSID(0, "$NetBSD: layer_subr.c,v 1.31 2010/07/21 17:52:12 hannken Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -162,7 +162,7 @@ * the lower vp is already locked and locking the layer vp * will involve locking the lower vp. */ - error = vget(vp, LK_INTERLOCK | LK_NOWAIT); + error = vget(vp, LK_NOWAIT); if (error) { kpause("layerfs", false, 1, NULL); mutex_enter(&lmp->layerm_hashlock); Index: src/sys/miscfs/kernfs/kernfs_subr.c diff -u src/sys/miscfs/kernfs/kernfs_subr.c:1.22 src/sys/miscfs/kernfs/kernfs_subr.c:1.23 --- src/sys/miscfs/kernfs/kernfs_subr.c:1.22 Wed Jul 21 09:06:38 2010 +++ src/sys/miscfs/kernfs/kernfs_subr.c Wed Jul 21 17:52:12 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: kernfs_subr.c,v 1.22 2010/07/21 09:06:38 hannken Exp $ */ +/* $NetBSD: kernfs_subr.c,v 1.23 2010/07/21 17:52:12 hannken Exp $ */ /* * Copyright (c) 1993 @@ -73,7 +73,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: kernfs_subr.c,v 1.22 2010/07/21 09:06:38 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: kernfs_subr.c,v 1.23 2010/07/21 17:52:12 hannken Exp $"); #ifdef _KERNEL_OPT #include "opt_ipsec.h" @@ -317,7 +317,7 @@ pp->kfs_kt == kt && pp->kfs_value == value) { mutex_enter(&vp->v_interlock); mutex_exit(&kfs_ihash_lock); - if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK)) + if (vget(vp, LK_EXCLUSIVE)) goto loop; return (vp); } Index: src/sys/miscfs/procfs/procfs_subr.c diff -u src/sys/miscfs/procfs/procfs_subr.c:1.97 src/sys/miscfs/procfs/procfs_subr.c:1.98 --- src/sys/miscfs/procfs/procfs_subr.c:1.97 Thu Jul 1 13:00:56 2010 +++ src/sys/miscfs/procfs/procfs_subr.c Wed Jul 21 17:52:12 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: procfs_subr.c,v 1.97 2010/07/01 13:00:56 hannken Exp $ */ +/* $NetBSD: procfs_subr.c,v 1.98 2010/07/21 17:52:12 hannken 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.97 2010/07/01 13:00:56 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: procfs_subr.c,v 1.98 2010/07/21 17:52:12 hannken Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -601,7 +601,7 @@ } else { mutex_enter(&vp->v_interlock); mutex_exit(&pfs_ihash_lock); - if (vget(vp, flags | LK_INTERLOCK)) + if (vget(vp, flags)) goto loop; } return (vp); Index: src/sys/miscfs/syncfs/sync_subr.c diff -u src/sys/miscfs/syncfs/sync_subr.c:1.42 src/sys/miscfs/syncfs/sync_subr.c:1.43 --- src/sys/miscfs/syncfs/sync_subr.c:1.42 Fri Apr 2 19:25:21 2010 +++ src/sys/miscfs/syncfs/sync_subr.c Wed Jul 21 17:52:12 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: sync_subr.c,v 1.42 2010/04/02 19:25:21 christos Exp $ */ +/* $NetBSD: sync_subr.c,v 1.43 2010/07/21 17:52:12 hannken Exp $ */ /*- * Copyright (c) 2009 The NetBSD Foundation, Inc. @@ -61,7 +61,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: sync_subr.c,v 1.42 2010/04/02 19:25:21 christos Exp $"); +__KERNEL_RCSID(0, "$NetBSD: sync_subr.c,v 1.43 2010/07/21 17:52:12 hannken Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -248,8 +248,7 @@ synced = false; if (mutex_tryenter(&vp->v_interlock)) { mutex_exit(&syncer_data_lock); - if (vget(vp, LK_EXCLUSIVE | LK_NOWAIT | - LK_INTERLOCK) == 0) { + if (vget(vp, LK_EXCLUSIVE | LK_NOWAIT) == 0) { synced = true; (void) VOP_FSYNC(vp, curlwp->l_cred, FSYNC_LAZY, 0, 0); Index: src/sys/nfs/nfs_node.c diff -u src/sys/nfs/nfs_node.c:1.112 src/sys/nfs/nfs_node.c:1.113 --- src/sys/nfs/nfs_node.c:1.112 Thu Jul 1 13:00:56 2010 +++ src/sys/nfs/nfs_node.c Wed Jul 21 17:52:13 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: nfs_node.c,v 1.112 2010/07/01 13:00:56 hannken Exp $ */ +/* $NetBSD: nfs_node.c,v 1.113 2010/07/21 17:52:13 hannken Exp $ */ /* * Copyright (c) 1989, 1993 @@ -35,7 +35,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: nfs_node.c,v 1.112 2010/07/01 13:00:56 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nfs_node.c,v 1.113 2010/07/21 17:52:13 hannken Exp $"); #ifdef _KERNEL_OPT #include "opt_nfs.h" @@ -178,7 +178,7 @@ vp = NFSTOV(np); mutex_enter(&vp->v_interlock); rw_exit(&nmp->nm_rbtlock); - error = vget(vp, LK_EXCLUSIVE | LK_INTERLOCK | lkflags); + error = vget(vp, LK_EXCLUSIVE | lkflags); if (error == EBUSY) return error; if (error) Index: src/sys/nfs/nfs_vfsops.c diff -u src/sys/nfs/nfs_vfsops.c:1.215 src/sys/nfs/nfs_vfsops.c:1.216 --- src/sys/nfs/nfs_vfsops.c:1.215 Fri Jul 9 08:25:57 2010 +++ src/sys/nfs/nfs_vfsops.c Wed Jul 21 17:52:13 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: nfs_vfsops.c,v 1.215 2010/07/09 08:25:57 hannken Exp $ */ +/* $NetBSD: nfs_vfsops.c,v 1.216 2010/07/21 17:52:13 hannken Exp $ */ /* * Copyright (c) 1989, 1993, 1995 @@ -35,7 +35,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: nfs_vfsops.c,v 1.215 2010/07/09 08:25:57 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: nfs_vfsops.c,v 1.216 2010/07/21 17:52:13 hannken Exp $"); #if defined(_KERNEL_OPT) #include "opt_nfs.h" @@ -974,7 +974,7 @@ continue; } mutex_exit(&mntvnode_lock); - error = vget(vp, LK_EXCLUSIVE | LK_NOWAIT | LK_INTERLOCK); + error = vget(vp, LK_EXCLUSIVE | LK_NOWAIT); if (error != 0) { if (error != ENOENT) { mutex_enter(&mntvnode_lock); Index: src/sys/rump/librump/rumpvfs/rumpfs.c diff -u src/sys/rump/librump/rumpvfs/rumpfs.c:1.62 src/sys/rump/librump/rumpvfs/rumpfs.c:1.63 --- src/sys/rump/librump/rumpvfs/rumpfs.c:1.62 Tue Jul 13 18:08:58 2010 +++ src/sys/rump/librump/rumpvfs/rumpfs.c Wed Jul 21 17:52:13 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: rumpfs.c,v 1.62 2010/07/13 18:08:58 pooka Exp $ */ +/* $NetBSD: rumpfs.c,v 1.63 2010/07/21 17:52:13 hannken Exp $ */ /* * Copyright (c) 2009 Antti Kantee. All Rights Reserved. @@ -26,7 +26,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: rumpfs.c,v 1.62 2010/07/13 18:08:58 pooka Exp $"); +__KERNEL_RCSID(0, "$NetBSD: rumpfs.c,v 1.63 2010/07/21 17:52:13 hannken Exp $"); #include <sys/param.h> #include <sys/atomic.h> @@ -686,7 +686,7 @@ if ((vp = rn->rn_vp)) { mutex_enter(&vp->v_interlock); mutex_exit(&reclock); - if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK)) { + if (vget(vp, LK_EXCLUSIVE)) { vn_lock(dvp, LK_EXCLUSIVE | LK_RETRY); goto getvnode; } Index: src/sys/ufs/ext2fs/ext2fs_vfsops.c diff -u src/sys/ufs/ext2fs/ext2fs_vfsops.c:1.157 src/sys/ufs/ext2fs/ext2fs_vfsops.c:1.158 --- src/sys/ufs/ext2fs/ext2fs_vfsops.c:1.157 Thu Jun 24 13:03:18 2010 +++ src/sys/ufs/ext2fs/ext2fs_vfsops.c Wed Jul 21 17:52:13 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: ext2fs_vfsops.c,v 1.157 2010/06/24 13:03:18 hannken Exp $ */ +/* $NetBSD: ext2fs_vfsops.c,v 1.158 2010/07/21 17:52:13 hannken Exp $ */ /* * Copyright (c) 1989, 1991, 1993, 1994 @@ -60,7 +60,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ext2fs_vfsops.c,v 1.157 2010/06/24 13:03:18 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ext2fs_vfsops.c,v 1.158 2010/07/21 17:52:13 hannken Exp $"); #if defined(_KERNEL_OPT) #include "opt_compat_netbsd.h" @@ -617,7 +617,7 @@ */ mutex_enter(&vp->v_interlock); mutex_exit(&mntvnode_lock); - if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK)) { + if (vget(vp, LK_EXCLUSIVE)) { mutex_enter(&mntvnode_lock); (void)vunmark(mvp); goto loop; @@ -943,7 +943,7 @@ continue; } mutex_exit(&mntvnode_lock); - error = vget(vp, LK_EXCLUSIVE | LK_NOWAIT | LK_INTERLOCK); + error = vget(vp, LK_EXCLUSIVE | LK_NOWAIT); if (error) { mutex_enter(&mntvnode_lock); if (error == ENOENT) { Index: src/sys/ufs/ffs/ffs_vfsops.c diff -u src/sys/ufs/ffs/ffs_vfsops.c:1.259 src/sys/ufs/ffs/ffs_vfsops.c:1.260 --- src/sys/ufs/ffs/ffs_vfsops.c:1.259 Thu Jun 24 13:03:19 2010 +++ src/sys/ufs/ffs/ffs_vfsops.c Wed Jul 21 17:52:13 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: ffs_vfsops.c,v 1.259 2010/06/24 13:03:19 hannken Exp $ */ +/* $NetBSD: ffs_vfsops.c,v 1.260 2010/07/21 17:52:13 hannken 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.259 2010/06/24 13:03:19 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ffs_vfsops.c,v 1.260 2010/07/21 17:52:13 hannken Exp $"); #if defined(_KERNEL_OPT) #include "opt_ffs.h" @@ -774,7 +774,7 @@ */ mutex_enter(&vp->v_interlock); mutex_exit(&mntvnode_lock); - if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK)) { + if (vget(vp, LK_EXCLUSIVE)) { (void)vunmark(mvp); goto loop; } @@ -1555,9 +1555,9 @@ * threads waiting on fstrans may have locked vnodes. */ if (is_suspending) - lk_flags = LK_INTERLOCK; + lk_flags = 0; else - lk_flags = LK_EXCLUSIVE | LK_NOWAIT | LK_INTERLOCK; + lk_flags = LK_EXCLUSIVE | LK_NOWAIT; /* * Write back each (modified) inode. */ Index: src/sys/ufs/lfs/lfs_segment.c diff -u src/sys/ufs/lfs/lfs_segment.c:1.216 src/sys/ufs/lfs/lfs_segment.c:1.217 --- src/sys/ufs/lfs/lfs_segment.c:1.216 Thu Jun 24 13:03:19 2010 +++ src/sys/ufs/lfs/lfs_segment.c Wed Jul 21 17:52:13 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: lfs_segment.c,v 1.216 2010/06/24 13:03:19 hannken Exp $ */ +/* $NetBSD: lfs_segment.c,v 1.217 2010/07/21 17:52:13 hannken 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.216 2010/06/24 13:03:19 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: lfs_segment.c,v 1.217 2010/07/21 17:52:13 hannken Exp $"); #ifdef DEBUG # define vndebug(vp, str) do { \ @@ -2737,7 +2737,7 @@ * being able to flush all of the pages from this vnode, which * will cause it to panic. So, return 0 if a flush is in progress. */ - error = vget(vp, LK_NOWAIT | LK_INTERLOCK); + error = vget(vp, LK_NOWAIT); if (error == EBUSY && IS_FLUSHING(VTOI(vp)->i_lfs, vp)) { ++fs->lfs_flushvp_fakevref; return 0; Index: src/sys/ufs/ufs/ufs_ihash.c diff -u src/sys/ufs/ufs/ufs_ihash.c:1.29 src/sys/ufs/ufs/ufs_ihash.c:1.30 --- src/sys/ufs/ufs/ufs_ihash.c:1.29 Thu Jul 1 13:00:57 2010 +++ src/sys/ufs/ufs/ufs_ihash.c Wed Jul 21 17:52:14 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: ufs_ihash.c,v 1.29 2010/07/01 13:00:57 hannken Exp $ */ +/* $NetBSD: ufs_ihash.c,v 1.30 2010/07/21 17:52:14 hannken Exp $ */ /* * Copyright (c) 1982, 1986, 1989, 1991, 1993 @@ -32,7 +32,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ufs_ihash.c,v 1.29 2010/07/01 13:00:57 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ufs_ihash.c,v 1.30 2010/07/21 17:52:14 hannken Exp $"); #include <sys/param.h> #include <sys/systm.h> @@ -150,7 +150,7 @@ } else { mutex_enter(&vp->v_interlock); mutex_exit(&ufs_ihash_lock); - if (vget(vp, flags | LK_INTERLOCK)) + if (vget(vp, flags)) goto loop; } return (vp); Index: src/sys/ufs/ufs/ufs_quota.c diff -u src/sys/ufs/ufs/ufs_quota.c:1.66 src/sys/ufs/ufs/ufs_quota.c:1.67 --- src/sys/ufs/ufs/ufs_quota.c:1.66 Thu Jun 24 13:03:20 2010 +++ src/sys/ufs/ufs/ufs_quota.c Wed Jul 21 17:52:14 2010 @@ -1,4 +1,4 @@ -/* $NetBSD: ufs_quota.c,v 1.66 2010/06/24 13:03:20 hannken Exp $ */ +/* $NetBSD: ufs_quota.c,v 1.67 2010/07/21 17:52:14 hannken Exp $ */ /* * Copyright (c) 1982, 1986, 1990, 1993, 1995 @@ -35,7 +35,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: ufs_quota.c,v 1.66 2010/06/24 13:03:20 hannken Exp $"); +__KERNEL_RCSID(0, "$NetBSD: ufs_quota.c,v 1.67 2010/07/21 17:52:14 hannken Exp $"); #include <sys/param.h> #include <sys/kernel.h> @@ -482,7 +482,7 @@ continue; } mutex_exit(&mntvnode_lock); - if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK)) { + if (vget(vp, LK_EXCLUSIVE)) { mutex_enter(&mntvnode_lock); (void)vunmark(mvp); goto again; @@ -552,7 +552,7 @@ continue; } mutex_exit(&mntvnode_lock); - if (vget(vp, LK_EXCLUSIVE | LK_INTERLOCK)) { + if (vget(vp, LK_EXCLUSIVE)) { mutex_enter(&mntvnode_lock); (void)vunmark(mvp); goto again; @@ -738,7 +738,7 @@ continue; } mutex_exit(&mntvnode_lock); - error = vget(vp, LK_EXCLUSIVE | LK_NOWAIT | LK_INTERLOCK); + error = vget(vp, LK_EXCLUSIVE | LK_NOWAIT); if (error) { mutex_enter(&mntvnode_lock); if (error == ENOENT) {