Index: external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c =================================================================== RCS file: /cvsroot/src/external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c,v retrieving revision 1.26 diff -u -p -r1.26 zfs_vfsops.c --- external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c 17 Jan 2020 20:08:06 -0000 1.26 +++ external/cddl/osnet/dist/uts/common/fs/zfs/zfs_vfsops.c 4 Apr 2020 21:15:36 -0000 @@ -1994,7 +1994,7 @@ zfs_mount(vfs_t *vfsp, const char *path, mutex_enter(mvp->v_interlock); if ((uap->flags & MS_REMOUNT) == 0 && (uap->flags & MS_OVERLAY) == 0 && - (mvp->v_count != 1 || (mvp->v_flag & VROOT))) { + (vusecount(mvp) != 1 || (mvp->v_flag & VROOT))) { mutex_exit(mvp->v_interlock); return (SET_ERROR(EBUSY)); } Index: external/cddl/osnet/sys/sys/vnode.h =================================================================== RCS file: /cvsroot/src/external/cddl/osnet/sys/sys/vnode.h,v retrieving revision 1.15 diff -u -p -r1.15 vnode.h --- external/cddl/osnet/sys/sys/vnode.h 12 Jan 2019 10:44:36 -0000 1.15 +++ external/cddl/osnet/sys/sys/vnode.h 4 Apr 2020 21:15:36 -0000 @@ -1,4 +1,3 @@ - /* $NetBSD: vnode.h,v 1.15 2019/01/12 10:44:36 hannken Exp $ */ /* @@ -156,17 +155,23 @@ int vn_is_readonly(vnode_t *); #define vn_vfsunlock(vp) do { } while (0) #define vn_ismntpt(vp) ((vp)->v_type == VDIR && (vp)->v_mountedhere != NULL) #define vn_mountedvfs(vp) ((vp)->v_mountedhere) -#define vn_has_cached_data(vp) ((vp)->v_uobj.uo_npages != 0) +#define vn_has_cached_data(vp) (((vp)->v_iflag & VI_PAGES) != 0) #define vn_exists(vp) do { } while (0) #define vn_invalid(vp) do { } while (0) #define vn_free(vp) do { } while (0) #define vn_renamepath(tdvp, svp, tnm, lentnm) do { } while (0) #define vn_matchops(vp, vops) ((vp)->v_op == &(vops)) +#ifdef __NetBSD__ +#define VN_USECOUNT(v) vusecount(v) +#else +#define VN_USECOUNT(v) (v)->v_usecount +#endif + #define VN_HOLD(v) vref(v) #define VN_RELE(v) \ do { \ - if ((v)->v_usecount == 0) { \ + if (VN_USECOUNT(v) == 0) { \ printf("VN_RELE(%s,%d): %p unused\n", __FILE__, __LINE__, v); \ vprint("VN_RELE", (v)); \ panic("VN_RELE"); \ Index: sys/coda/coda_namecache.c =================================================================== RCS file: /cvsroot/src/sys/coda/coda_namecache.c,v retrieving revision 1.26 diff -u -p -r1.26 coda_namecache.c --- sys/coda/coda_namecache.c 18 Oct 2014 08:33:27 -0000 1.26 +++ sys/coda/coda_namecache.c 4 Apr 2020 21:16:01 -0000 @@ -348,12 +348,12 @@ coda_nc_remove(struct coda_cache *cncp, LIST_REMOVE(cncp, hash); memset(&cncp->hash, 0, sizeof(cncp->hash)); - if ((dcstat == IS_DOWNCALL) && (CTOV(cncp->dcp)->v_usecount == 1)) { + if ((dcstat == IS_DOWNCALL) && (vusecount(CTOV(cncp->dcp)) == 1)) { cncp->dcp->c_flags |= C_PURGING; } vrele(CTOV(cncp->dcp)); - if ((dcstat == IS_DOWNCALL) && (CTOV(cncp->cp)->v_usecount == 1)) { + if ((dcstat == IS_DOWNCALL) && (vusecount(CTOV(cncp->cp)) == 1)) { cncp->cp->c_flags |= C_PURGING; } vrele(CTOV(cncp->cp)); @@ -570,7 +570,7 @@ coda_nc_flush(enum dc_status dcstat) memset(&cncp->hash, 0, sizeof(cncp->hash)); if ((dcstat == IS_DOWNCALL) - && (CTOV(cncp->dcp)->v_usecount == 1)) + && (vusecount(CTOV(cncp->dcp)) == 1)) { cncp->dcp->c_flags |= C_PURGING; } @@ -584,7 +584,7 @@ coda_nc_flush(enum dc_status dcstat) } if ((dcstat == IS_DOWNCALL) - && (CTOV(cncp->cp)->v_usecount == 1)) + && (vusecount(CTOV(cncp->cp)) == 1)) { cncp->cp->c_flags |= C_PURGING; } Index: sys/coda/coda_subr.c =================================================================== RCS file: /cvsroot/src/sys/coda/coda_subr.c,v retrieving revision 1.31 diff -u -p -r1.31 coda_subr.c --- sys/coda/coda_subr.c 6 Jan 2015 11:24:46 -0000 1.31 +++ sys/coda/coda_subr.c 4 Apr 2020 21:16:01 -0000 @@ -220,7 +220,7 @@ coda_testflush_selector(void *cl, struct if (cp != NULL) myprintf(("Live cnode fid %s count %d\n", - coda_f2s(&cp->c_fid), CTOV(cp)->v_usecount)); + coda_f2s(&cp->c_fid), vusecount(CTOV(cp)))); return false; } @@ -370,8 +370,8 @@ int handleDownCall(int opcode, union out error = coda_vmflush(cp); CODADEBUG(CODA_ZAPFILE, myprintf(( "zapfile: fid = %s, refcnt = %d, error = %d\n", - coda_f2s(&cp->c_fid), CTOV(cp)->v_usecount - 1, error));); - if (CTOV(cp)->v_usecount == 1) { + coda_f2s(&cp->c_fid), vusecount(CTOV(cp)) - 1, error));); + if (vusecount(CTOV(cp)) == 1) { cp->c_flags |= C_PURGING; } mutex_exit(&cp->c_lock); @@ -394,8 +394,8 @@ int handleDownCall(int opcode, union out CODADEBUG(CODA_ZAPDIR, myprintf(( "zapdir: fid = %s, refcnt = %d\n", - coda_f2s(&cp->c_fid), CTOV(cp)->v_usecount - 1));); - if (CTOV(cp)->v_usecount == 1) { + coda_f2s(&cp->c_fid), vusecount(CTOV(cp)) - 1));); + if (vusecount(CTOV(cp)) == 1) { cp->c_flags |= C_PURGING; } mutex_exit(&cp->c_lock); @@ -427,8 +427,8 @@ int handleDownCall(int opcode, union out } CODADEBUG(CODA_PURGEFID, myprintf(( "purgefid: fid = %s, refcnt = %d, error = %d\n", - coda_f2s(&cp->c_fid), CTOV(cp)->v_usecount - 1, error));); - if (CTOV(cp)->v_usecount == 1) { + coda_f2s(&cp->c_fid), vusecount(CTOV(cp)) - 1, error));); + if (vusecount(CTOV(cp)) == 1) { cp->c_flags |= C_PURGING; } mutex_exit(&cp->c_lock); Index: sys/coda/coda_vnops.c =================================================================== RCS file: /cvsroot/src/sys/coda/coda_vnops.c,v retrieving revision 1.110 diff -u -p -r1.110 coda_vnops.c --- sys/coda/coda_vnops.c 24 Feb 2020 20:53:11 -0000 1.110 +++ sys/coda/coda_vnops.c 4 Apr 2020 21:16:01 -0000 @@ -329,7 +329,7 @@ coda_close(void *v) if (cp->c_ovp) { #ifdef CODA_VERBOSE printf("%s: destroying container %d, ufs vp %p of vp %p/cp %p\n", - __func__, vp->v_usecount, cp->c_ovp, vp, cp); + __func__, vusecount(vp), cp->c_ovp, vp, cp); #endif #ifdef hmm vgone(cp->c_ovp); @@ -465,7 +465,7 @@ coda_rdwr(vnode_t *vp, struct uio *uiop, /* Have UFS handle the call. */ CODADEBUG(CODA_RDWR, myprintf(("%s: fid = %s, refcnt = %d\n", __func__, - coda_f2s(&cp->c_fid), CTOV(cp)->v_usecount)); ) + coda_f2s(&cp->c_fid), vusecount(CTOV(cp)))); ) if (rw == UIO_READ) { error = VOP_READ(cfvp, uiop, ioflag, cred); @@ -850,8 +850,8 @@ coda_inactive(void *v) #ifdef CODA_VERBOSE /* Sanity checks that perhaps should be panic. */ - if (vp->v_usecount > 1) - printf("%s: %p usecount %d\n", __func__, vp, vp->v_usecount); + if (vusecount(vp) > 1) + printf("%s: %p usecount %d\n", __func__, vp, vusecount(vp)); if (cp->c_ovp != NULL) printf("%s: %p ovp != NULL\n", __func__, vp); #endif @@ -1569,7 +1569,7 @@ coda_readdir(void *v) /* Have UFS handle the call. */ CODADEBUG(CODA_READDIR, myprintf(("%s: fid = %s, refcnt = %d\n", - __func__, coda_f2s(&cp->c_fid), vp->v_usecount)); ) + __func__, coda_f2s(&cp->c_fid), vusecount(vp))); ) saved_type = vp->v_type; vn_lock(vp, LK_EXCLUSIVE | LK_RETRY); vp->v_type = VDIR; /* pretend the container file is a dir */ @@ -1661,7 +1661,7 @@ coda_reclaim(void *v) #endif } else { #ifdef OLD_DIAGNOSTIC - if (vp->v_usecount != 0) + if (vusecount(vp) != 0) print("%s: pushing active %p\n", __func__, vp); if (VTOC(vp)->c_ovp) { panic("%s: c_ovp not void", __func__); Index: sys/fs/msdosfs/msdosfs_denode.c =================================================================== RCS file: /cvsroot/src/sys/fs/msdosfs/msdosfs_denode.c,v retrieving revision 1.57 diff -u -p -r1.57 msdosfs_denode.c --- sys/fs/msdosfs/msdosfs_denode.c 28 May 2018 21:04:37 -0000 1.57 +++ sys/fs/msdosfs/msdosfs_denode.c 4 Apr 2020 21:16:02 -0000 @@ -611,8 +611,8 @@ out: * so that it can be reused immediately. */ #ifdef MSDOSFS_DEBUG - printf("msdosfs_inactive(): v_usecount %d, de_Name[0] %x\n", - vp->v_usecount, dep->de_Name[0]); + printf("msdosfs_inactive(): usecount %d, de_Name[0] %x\n", + vusecount(vp), dep->de_Name[0]); #endif *ap->a_recycle = (dep->de_Name[0] == SLOT_DELETED); Index: sys/fs/msdosfs/msdosfs_vfsops.c =================================================================== RCS file: /cvsroot/src/sys/fs/msdosfs/msdosfs_vfsops.c,v retrieving revision 1.134 diff -u -p -r1.134 msdosfs_vfsops.c --- sys/fs/msdosfs/msdosfs_vfsops.c 4 Apr 2020 20:49:30 -0000 1.134 +++ sys/fs/msdosfs/msdosfs_vfsops.c 4 Apr 2020 21:16:02 -0000 @@ -926,7 +926,7 @@ msdosfs_unmount(struct mount *mp, int mn printf("msdosfs_umount(): just before calling VOP_CLOSE()\n"); printf("flag %08x, usecount %d, writecount %d, holdcnt %d\n", - vp->v_vflag | vp->v_iflag | vp->v_uflag, vp->v_usecount, + vp->v_vflag | vp->v_iflag | vp->v_uflag, vusecount(vp), vp->v_writecount, vp->v_holdcnt); printf("mount %p, op %p\n", vp->v_mount, vp->v_op); Index: sys/fs/msdosfs/msdosfs_vnops.c =================================================================== RCS file: /cvsroot/src/sys/fs/msdosfs/msdosfs_vnops.c,v retrieving revision 1.100 diff -u -p -r1.100 msdosfs_vnops.c --- sys/fs/msdosfs/msdosfs_vnops.c 23 Feb 2020 15:46:40 -0000 1.100 +++ sys/fs/msdosfs/msdosfs_vnops.c 4 Apr 2020 21:16:02 -0000 @@ -173,7 +173,7 @@ msdosfs_close(void *v) struct denode *dep = VTODE(vp); mutex_enter(vp->v_interlock); - if (vp->v_usecount > 1) + if (vusecount(vp) > 1) DETIMES(dep, NULL, NULL, NULL, dep->de_pmp->pm_gmtoff); mutex_exit(vp->v_interlock); return (0); @@ -731,8 +731,8 @@ msdosfs_remove(void *v) else error = removede(ddep, dep); #ifdef MSDOSFS_DEBUG - printf("msdosfs_remove(), dep %p, v_usecount %d\n", - dep, ap->a_vp->v_usecount); + printf("msdosfs_remove(), dep %p, usecount %d\n", + dep, vusecount(ap->a_vp)); #endif VN_KNOTE(ap->a_vp, NOTE_DELETE); VN_KNOTE(ap->a_dvp, NOTE_WRITE); Index: sys/fs/nilfs/nilfs_vnops.c =================================================================== RCS file: /cvsroot/src/sys/fs/nilfs/nilfs_vnops.c,v retrieving revision 1.38 diff -u -p -r1.38 nilfs_vnops.c --- sys/fs/nilfs/nilfs_vnops.c 27 Dec 2019 09:41:51 -0000 1.38 +++ sys/fs/nilfs/nilfs_vnops.c 4 Apr 2020 21:16:02 -0000 @@ -1,4 +1,4 @@ -/* $NetBSD: nilfs_vnops.c,v 1.38 2019/12/27 09:41:51 msaitoh Exp $ */ + /* * Copyright (c) 2008, 2009 Reinoud Zandijk @@ -976,8 +976,8 @@ nilfs_close(void *v) nilfs_node = nilfs_node; /* shut up gcc */ mutex_enter(vp->v_interlock); - if (vp->v_usecount > 1) - nilfs_itimes(nilfs_node, NULL, NULL, NULL); + if (vusecount(vp) > 1) + nilfs_itimes(nilfs_node, NULL, NULL, NULL); mutex_exit(vp->v_interlock); return 0; Index: sys/fs/ntfs/ntfs_vfsops.c =================================================================== RCS file: /cvsroot/src/sys/fs/ntfs/ntfs_vfsops.c,v retrieving revision 1.109 diff -u -p -r1.109 ntfs_vfsops.c --- sys/fs/ntfs/ntfs_vfsops.c 17 Jan 2020 20:08:08 -0000 1.109 +++ sys/fs/ntfs/ntfs_vfsops.c 4 Apr 2020 21:16:02 -0000 @@ -526,7 +526,7 @@ ntfs_unmount(struct mount *mp, int mntfl /* Check if only system vnodes are rest */ for (i = 0; i < NTFS_SYSNODESNUM; i++) if ((ntmp->ntm_sysvn[i]) && - (ntmp->ntm_sysvn[i]->v_usecount > 1)) + (vusecount(ntmp->ntm_sysvn[i]) > 1)) return (EBUSY); /* Dereference all system vnodes */ Index: sys/fs/ptyfs/ptyfs_vnops.c =================================================================== RCS file: /cvsroot/src/sys/fs/ptyfs/ptyfs_vnops.c,v retrieving revision 1.57 diff -u -p -r1.57 ptyfs_vnops.c --- sys/fs/ptyfs/ptyfs_vnops.c 26 Sep 2019 20:57:19 -0000 1.57 +++ sys/fs/ptyfs/ptyfs_vnops.c 4 Apr 2020 21:16:02 -0000 @@ -798,7 +798,7 @@ ptyfs_close(void *v) struct ptyfsnode *ptyfs = VTOPTYFS(vp); mutex_enter(vp->v_interlock); - if (vp->v_usecount > 1) + if (vusecount(vp) > 1) PTYFS_ITIMES(ptyfs, NULL, NULL, NULL); mutex_exit(vp->v_interlock); Index: sys/fs/udf/udf_vfsops.c =================================================================== RCS file: /cvsroot/src/sys/fs/udf/udf_vfsops.c,v retrieving revision 1.78 diff -u -p -r1.78 udf_vfsops.c --- sys/fs/udf/udf_vfsops.c 16 Mar 2020 21:20:10 -0000 1.78 +++ sys/fs/udf/udf_vfsops.c 4 Apr 2020 21:16:02 -0000 @@ -445,8 +445,8 @@ udf_sanity_selector(void *cl, struct vno if (VOP_ISLOCKED(vp) == LK_EXCLUSIVE) { printf(" is locked\n"); } - if (vp->v_usecount > 1) - printf(" more than one usecount %d\n", vp->v_usecount); + if (vusecount(vp) > 1) + printf(" more than one usecount %d\n", vusecount(vp)); return false; } Index: sys/fs/udf/udf_vnops.c =================================================================== RCS file: /cvsroot/src/sys/fs/udf/udf_vnops.c,v retrieving revision 1.109 diff -u -p -r1.109 udf_vnops.c --- sys/fs/udf/udf_vnops.c 23 Feb 2020 15:46:41 -0000 1.109 +++ sys/fs/udf/udf_vnops.c 4 Apr 2020 21:16:02 -0000 @@ -1386,8 +1386,8 @@ udf_close(void *v) } mutex_enter(vp->v_interlock); - if (vp->v_usecount > 1) - udf_itimes(udf_node, NULL, NULL, NULL); + if (vusecount(vp) > 1) + udf_itimes(udf_node, NULL, NULL, NULL); mutex_exit(vp->v_interlock); return 0; Index: sys/fs/v7fs/v7fs_vnops.c =================================================================== RCS file: /cvsroot/src/sys/fs/v7fs/v7fs_vnops.c,v retrieving revision 1.27 diff -u -p -r1.27 v7fs_vnops.c --- sys/fs/v7fs/v7fs_vnops.c 17 Jan 2020 20:08:09 -0000 1.27 +++ sys/fs/v7fs/v7fs_vnops.c 4 Apr 2020 21:16:02 -0000 @@ -138,7 +138,7 @@ v7fs_lookup(void *v) if ((nameiop == RENAME) && islastcn) { return EISDIR; /* t_vnops rename_dir(3) */ } - vref(dvp); /* v_usecount++ */ + vref(dvp); /* usecount++ */ *a->a_vpp = dvp; DPRINTF("done.(.)\n"); return 0; @@ -717,9 +717,9 @@ v7fs_remove(void *v) out: if (dvp == vp) - vrele(vp); /* v_usecount-- of unlocked vp */ + vrele(vp); /* usecount-- of unlocked vp */ else - vput(vp); /* unlock vp and then v_usecount-- */ + vput(vp); /* unlock vp and then usecount-- */ return error; } Index: sys/kern/exec_subr.c =================================================================== RCS file: /cvsroot/src/sys/kern/exec_subr.c,v retrieving revision 1.83 diff -u -p -r1.83 exec_subr.c --- sys/kern/exec_subr.c 12 Jan 2020 18:30:58 -0000 1.83 +++ sys/kern/exec_subr.c 4 Apr 2020 21:16:02 -0000 @@ -87,7 +87,7 @@ new_vmcmd(struct exec_vmcmd_set *evsp, VMCMD_EVCNT_INCR(calls); KASSERT(proc != vmcmd_map_pagedvn || (vp->v_iflag & VI_TEXT)); - KASSERT(vp == NULL || vp->v_usecount > 0); + KASSERT(vp == NULL || vusecount(vp)); if (evsp->evs_used >= evsp->evs_cnt) vmcmdset_extend(evsp); Index: sys/kern/vfs_getcwd.c =================================================================== RCS file: /cvsroot/src/sys/kern/vfs_getcwd.c,v retrieving revision 1.57 diff -u -p -r1.57 vfs_getcwd.c --- sys/kern/vfs_getcwd.c 4 Apr 2020 20:49:30 -0000 1.57 +++ sys/kern/vfs_getcwd.c 4 Apr 2020 21:16:04 -0000 @@ -527,7 +527,7 @@ vnode_to_path(char *path, size_t len, st char *bp, *bend; struct vnode *dvp; - KASSERT(vp->v_usecount > 0); + KASSERT(vusecount(vp) > 0); bp = bend = &path[len]; *(--bp) = '\0'; Index: sys/kern/vfs_vnops.c =================================================================== RCS file: /cvsroot/src/sys/kern/vfs_vnops.c,v retrieving revision 1.207 diff -u -p -r1.207 vfs_vnops.c --- sys/kern/vfs_vnops.c 27 Feb 2020 22:12:54 -0000 1.207 +++ sys/kern/vfs_vnops.c 4 Apr 2020 21:16:05 -0000 @@ -1041,7 +1041,7 @@ vn_lock(struct vnode *vp, int flags) int error; #if 0 - KASSERT(vp->v_usecount > 0 || (vp->v_iflag & VI_ONWORKLST) != 0); + KASSERT(vusecount(vp) > 0 || (vp->v_iflag & VI_ONWORKLST) != 0); #endif KASSERT((flags & ~(LK_SHARED|LK_EXCLUSIVE|LK_NOWAIT|LK_RETRY| LK_UPGRADE|LK_DOWNGRADE)) == 0); Index: sys/miscfs/fdesc/fdesc_vfsops.c =================================================================== RCS file: /cvsroot/src/sys/miscfs/fdesc/fdesc_vfsops.c,v retrieving revision 1.95 diff -u -p -r1.95 fdesc_vfsops.c --- sys/miscfs/fdesc/fdesc_vfsops.c 21 Mar 2020 16:30:39 -0000 1.95 +++ sys/miscfs/fdesc/fdesc_vfsops.c 4 Apr 2020 21:16:05 -0000 @@ -119,7 +119,7 @@ fdesc_unmount(struct mount *mp, int mntf if (mntflags & MNT_FORCE) flags |= FORCECLOSE; - if (rtvp->v_usecount > 1 && (mntflags & MNT_FORCE) == 0) + if (vusecount(rtvp) > 1 && (mntflags & MNT_FORCE) == 0) return (EBUSY); if ((error = vflush(mp, rtvp, flags)) != 0) return (error); Index: sys/miscfs/genfs/layer_subr.c =================================================================== RCS file: /cvsroot/src/sys/miscfs/genfs/layer_subr.c,v retrieving revision 1.37 diff -u -p -r1.37 layer_subr.c --- sys/miscfs/genfs/layer_subr.c 9 Nov 2014 18:08:07 -0000 1.37 +++ sys/miscfs/genfs/layer_subr.c 4 Apr 2020 21:16:05 -0000 @@ -127,7 +127,7 @@ layer_node_create(struct mount *mp, stru * reference to the lower node. */ vrele(lowervp); - KASSERT(lowervp->v_usecount > 0); + KASSERT(vusecount(lowervp) > 0); #ifdef LAYERFS_DIAGNOSTIC if (layerfs_debug) @@ -167,7 +167,7 @@ layer_checkvp(struct vnode *vp, const ch /* wait for debugger */ panic("layer_checkvp"); } - if (a->layer_lowervp->v_usecount < 1) { + if (vusecount(a->layer_lowervp) < 1) { int i; u_long *p; printf("vp = %p, unref'ed lowervp\n", vp); for (p = (u_long *) a, i = 0; i < 8; i++) @@ -178,8 +178,8 @@ layer_checkvp(struct vnode *vp, const ch }; #ifdef notnow printf("layer %p/%d -> %p/%d [%s, %d]\n", - LAYERTOV(a), LAYERTOV(a)->v_usecount, - a->layer_lowervp, a->layer_lowervp->v_usecount, + LAYERTOV(a), vusecount(LAYERTOV(a)), + a->layer_lowervp, vusecount(a->layer_lowervp), fil, lno); #endif return a->layer_lowervp; Index: sys/miscfs/genfs/layer_vnops.c =================================================================== RCS file: /cvsroot/src/sys/miscfs/genfs/layer_vnops.c,v retrieving revision 1.69 diff -u -p -r1.69 layer_vnops.c --- sys/miscfs/genfs/layer_vnops.c 4 Apr 2020 20:49:30 -0000 1.69 +++ sys/miscfs/genfs/layer_vnops.c 4 Apr 2020 21:16:05 -0000 @@ -692,7 +692,7 @@ layer_revoke(void *v) int error; /* - * We will most likely end up in vclean which uses the v_usecount + * We will most likely end up in vclean which uses the usecount * to determine if a vnode is active. Take an extra reference on * the lower vnode so it will always close and inactivate. */ Index: sys/miscfs/nullfs/null_vfsops.c =================================================================== RCS file: /cvsroot/src/sys/miscfs/nullfs/null_vfsops.c,v retrieving revision 1.98 diff -u -p -r1.98 null_vfsops.c --- sys/miscfs/nullfs/null_vfsops.c 4 Apr 2020 20:49:30 -0000 1.98 +++ sys/miscfs/nullfs/null_vfsops.c 4 Apr 2020 21:16:05 -0000 @@ -190,7 +190,7 @@ nullfs_unmount(struct mount *mp, int mnt if (mntflags & MNT_FORCE) flags |= FORCECLOSE; - if (null_rootvp->v_usecount > 1 && (mntflags & MNT_FORCE) == 0) + if (vusecount(null_rootvp) > 1 && (mntflags & MNT_FORCE) == 0) return EBUSY; if ((error = vflush(mp, null_rootvp, flags)) != 0) Index: sys/miscfs/overlay/overlay_vfsops.c =================================================================== RCS file: /cvsroot/src/sys/miscfs/overlay/overlay_vfsops.c,v retrieving revision 1.70 diff -u -p -r1.70 overlay_vfsops.c --- sys/miscfs/overlay/overlay_vfsops.c 21 Mar 2020 16:30:39 -0000 1.70 +++ sys/miscfs/overlay/overlay_vfsops.c 4 Apr 2020 21:16:05 -0000 @@ -215,7 +215,7 @@ ov_unmount(struct mount *mp, int mntflag if (mntflags & MNT_FORCE) flags |= FORCECLOSE; - if (overlay_rootvp->v_usecount > 1 && (mntflags & MNT_FORCE) == 0) + if (vusecount(overlay_rootvp) > 1 && (mntflags & MNT_FORCE) == 0) return (EBUSY); if ((error = vflush(mp, overlay_rootvp, flags)) != 0) return (error); Index: sys/miscfs/umapfs/umap_vfsops.c =================================================================== RCS file: /cvsroot/src/sys/miscfs/umapfs/umap_vfsops.c,v retrieving revision 1.102 diff -u -p -r1.102 umap_vfsops.c --- sys/miscfs/umapfs/umap_vfsops.c 16 Mar 2020 21:20:11 -0000 1.102 +++ sys/miscfs/umapfs/umap_vfsops.c 4 Apr 2020 21:16:05 -0000 @@ -274,7 +274,7 @@ umapfs_unmount(struct mount *mp, int mnt if (mntflags & MNT_FORCE) flags |= FORCECLOSE; - if (rtvp->v_usecount > 1 && (mntflags & MNT_FORCE) == 0) + if (vusecount(rtvp) > 1 && (mntflags & MNT_FORCE) == 0) return (EBUSY); if ((error = vflush(mp, rtvp, flags)) != 0) return (error); Index: sys/nfs/nfs_vfsops.c =================================================================== RCS file: /cvsroot/src/sys/nfs/nfs_vfsops.c,v retrieving revision 1.240 diff -u -p -r1.240 nfs_vfsops.c --- sys/nfs/nfs_vfsops.c 16 Mar 2020 21:20:11 -0000 1.240 +++ sys/nfs/nfs_vfsops.c 4 Apr 2020 21:16:05 -0000 @@ -863,7 +863,7 @@ nfs_unmount(struct mount *mp, int mntfla if (error != 0) goto err; - if ((mntflags & MNT_FORCE) == 0 && vp->v_usecount > 1) { + if ((mntflags & MNT_FORCE) == 0 && vusecount(vp) > 1) { VOP_UNLOCK(vp); error = EBUSY; goto err; Index: sys/nfs/nfs_vnops.c =================================================================== RCS file: /cvsroot/src/sys/nfs/nfs_vnops.c,v retrieving revision 1.313 diff -u -p -r1.313 nfs_vnops.c --- sys/nfs/nfs_vnops.c 23 Feb 2020 15:46:41 -0000 1.313 +++ sys/nfs/nfs_vnops.c 4 Apr 2020 21:16:05 -0000 @@ -1729,7 +1729,7 @@ again: * To try and make nfs semantics closer to ufs semantics, a file that has * other processes using the vnode is renamed instead of removed and then * removed later on the last close. - * - If v_usecount > 1 + * - If vusecount(vp) > 1 * If a rename is not already in the works * call nfs_sillyrename() to set it up * else @@ -1752,12 +1752,12 @@ nfs_remove(void *v) struct vattr vattr; #ifndef DIAGNOSTIC - if (vp->v_usecount < 1) - panic("nfs_remove: bad v_usecount"); + if (vusecount(vp) < 1) + panic("nfs_remove: bad vusecount(vp)"); #endif if (vp->v_type == VDIR) error = EPERM; - else if (vp->v_usecount == 1 || (np->n_sillyrename && + else if (vusecount(vp) == 1 || (np->n_sillyrename && VOP_GETATTR(vp, &vattr, cnp->cn_cred) == 0 && vattr.va_nlink > 1)) { /* @@ -1886,7 +1886,7 @@ nfs_rename(void *v) * so that we don't lose the file if the rename fails, and so * that there's no window when the "to" file doesn't exist. */ - if (tvp && tvp->v_usecount > 1 && !VTONFS(tvp)->n_sillyrename && + if (tvp && vusecount(tvp) > 1 && !VTONFS(tvp)->n_sillyrename && tvp->v_type != VDIR && !nfs_sillyrename(tdvp, tvp, tcnp, true)) { VN_KNOTE(tvp, NOTE_DELETE); vput(tvp); @@ -3443,7 +3443,7 @@ nfsspec_close(void *v) if (np->n_flag & (NACC | NUPD)) { np->n_flag |= NCHG; - if (vp->v_usecount == 1 && + if (vusecount(vp) == 1 && (vp->v_mount->mnt_flag & MNT_RDONLY) == 0) { vattr_null(&vattr); if (np->n_flag & NACC) @@ -3527,7 +3527,7 @@ nfsfifo_close(void *v) if (np->n_flag & NUPD) np->n_mtim = ts; np->n_flag |= NCHG; - if (vp->v_usecount == 1 && + if (vusecount(vp) == 1 && (vp->v_mount->mnt_flag & MNT_RDONLY) == 0) { vattr_null(&vattr); if (np->n_flag & NACC) Index: sys/rump/librump/rumpvfs/rump_vfs.c =================================================================== RCS file: /cvsroot/src/sys/rump/librump/rumpvfs/rump_vfs.c,v retrieving revision 1.90 diff -u -p -r1.90 rump_vfs.c --- sys/rump/librump/rumpvfs/rump_vfs.c 23 Feb 2020 15:46:42 -0000 1.90 +++ sys/rump/librump/rumpvfs/rump_vfs.c 4 Apr 2020 21:16:05 -0000 @@ -382,7 +382,7 @@ int rump_vp_getref(struct vnode *vp) { - return vp->v_usecount; + return vusecount(vp); } void Index: sys/rump/librump/rumpvfs/rumpfs.c =================================================================== RCS file: /cvsroot/src/sys/rump/librump/rumpvfs/rumpfs.c,v retrieving revision 1.155 diff -u -p -r1.155 rumpfs.c --- sys/rump/librump/rumpvfs/rumpfs.c 4 Apr 2020 19:24:51 -0000 1.155 +++ sys/rump/librump/rumpvfs/rumpfs.c 4 Apr 2020 21:16:05 -0000 @@ -1906,7 +1906,7 @@ rumpfs_unmount(struct mount *mp, int mnt if (panicstr || mntflags & MNT_FORCE) flags |= FORCECLOSE; - if (rfsmp->rfsmp_rvp->v_usecount > 1 && (flags & FORCECLOSE) == 0) + if (vusecount(rfsmp->rfsmp_rvp) > 1 && (flags & FORCECLOSE) == 0) return EBUSY; if ((error = vflush(mp, rfsmp->rfsmp_rvp, flags)) != 0) Index: sys/ufs/lfs/lfs_vnops.c =================================================================== RCS file: /cvsroot/src/sys/ufs/lfs/lfs_vnops.c,v retrieving revision 1.331 diff -u -p -r1.331 lfs_vnops.c --- sys/ufs/lfs/lfs_vnops.c 23 Feb 2020 15:46:42 -0000 1.331 +++ sys/ufs/lfs/lfs_vnops.c 4 Apr 2020 21:16:06 -0000 @@ -1346,7 +1346,7 @@ lfs_close(void *v) vp->v_mount->mnt_iflag & IMNT_UNMOUNT) return 0; - if (vp->v_usecount > 1 && vp != ip->i_lfs->lfs_ivnode) { + if (vusecount(vp) > 1 && vp != ip->i_lfs->lfs_ivnode) { LFS_ITIMES(ip, NULL, NULL, NULL); } return (0); @@ -1373,7 +1373,7 @@ lfsspec_close(void *v) KASSERT(VOP_ISLOCKED(vp) == LK_EXCLUSIVE); ip = VTOI(vp); - if (vp->v_usecount > 1) { + if (vusecount(vp) > 1) { LFS_ITIMES(ip, NULL, NULL, NULL); } return (VOCALL (spec_vnodeop_p, VOFFSET(vop_close), ap)); @@ -1400,7 +1400,7 @@ lfsfifo_close(void *v) KASSERT(VOP_ISLOCKED(vp) == LK_EXCLUSIVE); ip = VTOI(vp); - if (ap->a_vp->v_usecount > 1) { + if (vusecount(ap->a_vp) > 1) { LFS_ITIMES(ip, NULL, NULL, NULL); } return (VOCALL (fifo_vnodeop_p, VOFFSET(vop_close), ap)); Index: sys/ufs/mfs/mfs_vnops.c =================================================================== RCS file: /cvsroot/src/sys/ufs/mfs/mfs_vnops.c,v retrieving revision 1.59 diff -u -p -r1.59 mfs_vnops.c --- sys/ufs/mfs/mfs_vnops.c 20 Feb 2019 10:03:55 -0000 1.59 +++ sys/ufs/mfs/mfs_vnops.c 4 Apr 2020 21:16:06 -0000 @@ -140,7 +140,7 @@ mfs_strategy(void *v) struct buf *bp = ap->a_bp; struct mfsnode *mfsp; - if (vp->v_type != VBLK || vp->v_usecount == 0) + if (vp->v_type != VBLK || vusecount(vp) == 0) panic("mfs_strategy: bad dev"); mfsp = VTOMFS(vp); /* check for mini-root access */ Index: sys/ufs/ufs/ufs_vnops.c =================================================================== RCS file: /cvsroot/src/sys/ufs/ufs/ufs_vnops.c,v retrieving revision 1.250 diff -u -p -r1.250 ufs_vnops.c --- sys/ufs/ufs/ufs_vnops.c 4 Apr 2020 20:49:31 -0000 1.250 +++ sys/ufs/ufs/ufs_vnops.c 4 Apr 2020 21:16:06 -0000 @@ -250,7 +250,7 @@ ufs_close(void *v) struct vnode *vp; vp = ap->a_vp; - if (vp->v_usecount > 1) + if (vusecount(vp) > 1) UFS_ITIMES(vp, NULL, NULL, NULL); return (0); } @@ -1669,7 +1669,7 @@ ufsspec_close(void *v) struct vnode *vp; vp = ap->a_vp; - if (vp->v_usecount > 1) + if (vusecount(vp) > 1) UFS_ITIMES(vp, NULL, NULL, NULL); return (VOCALL (spec_vnodeop_p, VOFFSET(vop_close), ap)); } @@ -1730,7 +1730,7 @@ ufsfifo_close(void *v) struct vnode *vp; vp = ap->a_vp; - if (ap->a_vp->v_usecount > 1) + if (vusecount(ap->a_vp) > 1) UFS_ITIMES(vp, NULL, NULL, NULL); return (VOCALL (fifo_vnodeop_p, VOFFSET(vop_close), ap)); } Index: usr.sbin/pstat/pstat.c =================================================================== RCS file: /cvsroot/src/usr.sbin/pstat/pstat.c,v retrieving revision 1.130 diff -u -p -r1.130 pstat.c --- usr.sbin/pstat/pstat.c 11 Dec 2019 19:51:36 -0000 1.130 +++ usr.sbin/pstat/pstat.c 4 Apr 2020 21:16:16 -0000 @@ -49,6 +49,7 @@ __RCSID("$NetBSD: pstat.c,v 1.130 2019/1 #include #include #include +#include #include #include #define _KERNEL @@ -405,6 +406,7 @@ vnode_header(void) int vnode_print(struct vnode *avnode, struct vnode *vp) { + vnode_impl_t *vip = (vnode_impl_t *)vp; const char *type; char flags[sizeof(vnode_flags) / sizeof(vnode_flags[0])]; int ovflw; @@ -444,7 +446,7 @@ vnode_print(struct vnode *avnode, struct PRWORD(ovflw, "%*lx", PTRSTRWIDTH, 0, (long)avnode); PRWORD(ovflw, " %*s", 4, 1, type); PRWORD(ovflw, " %*s", 6, 1, flags); - PRWORD(ovflw, " %*ld", 5, 1, (long)vp->v_usecount); + PRWORD(ovflw, " %*ld", 5, 1, (long)(vip->vi_state & VS_USECOUNT_MASK)); PRWORD(ovflw, " %*ld", 5, 1, (long)vp->v_holdcnt); PRWORD(ovflw, " %*d", 4, 1, vp->v_tag); PRWORD(ovflw, " %*d", 6, 1, vp->v_uobj.uo_npages);