git: ce00b11940ab - main - mount: revert the active vnode reporting feature
- Go to: [ bottom of page ] [ top of archives ] [ this month ]
Date: Wed, 15 Jun 2022 15:05:43 UTC
The branch main has been updated by ambrisko: URL: https://cgit.FreeBSD.org/src/commit/?id=ce00b11940aba80f0bd5fd712d77263194290d57 commit ce00b11940aba80f0bd5fd712d77263194290d57 Author: Doug Ambrisko <ambrisko@FreeBSD.org> AuthorDate: 2022-06-14 21:37:27 +0000 Commit: Doug Ambrisko <ambrisko@FreeBSD.org> CommitDate: 2022-06-15 14:24:55 +0000 mount: revert the active vnode reporting feature Revert the computing of active vnode reporting since statfs is used by a lot of tools. Only report the vnodes used. Reported by: mjg --- sbin/mount/mount.c | 7 +++---- sys/kern/vfs_mount.c | 12 ------------ sys/sys/mount.h | 2 +- 3 files changed, 4 insertions(+), 17 deletions(-) diff --git a/sbin/mount/mount.c b/sbin/mount/mount.c index bd3d0073c474..6c986907bcda 100644 --- a/sbin/mount/mount.c +++ b/sbin/mount/mount.c @@ -692,11 +692,10 @@ prmount(struct statfs *sfp) xo_emit("{D:, }{Lw:fsid}{:fsid}", fsidbuf); free(fsidbuf); } - if (sfp->f_nvnodelistsize != 0 || sfp->f_avnodecount != 0) { + if (sfp->f_nvnodelistsize != 0) { xo_open_container("vnodes"); - xo_emit("{D:, }{Lwc:vnodes}{Lw:count}{w:count/%ju}{Lw:active}{:active/%ju}", - (uintmax_t)sfp->f_nvnodelistsize, - (uintmax_t)sfp->f_avnodecount); + xo_emit("{D:, }{Lwc:vnodes}{Lw:count}{w:count/%ju}", + (uintmax_t)sfp->f_nvnodelistsize); xo_close_container("vnodes"); } } diff --git a/sys/kern/vfs_mount.c b/sys/kern/vfs_mount.c index e33492cd8367..155e397b7f5e 100644 --- a/sys/kern/vfs_mount.c +++ b/sys/kern/vfs_mount.c @@ -2610,9 +2610,6 @@ vfs_copyopt(struct vfsoptlist *opts, const char *name, void *dest, int len) int __vfs_statfs(struct mount *mp, struct statfs *sbp) { - struct vnode *vp; - uint32_t count; - /* * Filesystems only fill in part of the structure for updates, we * have to read the entirety first to get all content. @@ -2628,15 +2625,6 @@ __vfs_statfs(struct mount *mp, struct statfs *sbp) sbp->f_flags = mp->mnt_flag & MNT_VISFLAGMASK; sbp->f_nvnodelistsize = mp->mnt_nvnodelistsize; - count = 0; - MNT_ILOCK(mp); - TAILQ_FOREACH(vp, &mp->mnt_nvnodelist, v_nmntvnodes) { - if (vrefcnt(vp) > 0) /* racy but does not matter */ - count++; - } - MNT_IUNLOCK(mp); - sbp->f_avnodecount = count; - return (mp->mnt_op->vfs_statfs(mp, sbp)); } diff --git a/sys/sys/mount.h b/sys/sys/mount.h index edac64171f9a..ffb2676258f3 100644 --- a/sys/sys/mount.h +++ b/sys/sys/mount.h @@ -92,7 +92,7 @@ struct statfs { uint64_t f_syncreads; /* count of sync reads since mount */ uint64_t f_asyncreads; /* count of async reads since mount */ uint32_t f_nvnodelistsize; /* # of vnodes */ - uint32_t f_avnodecount; /* # of active vnodes */ + uint32_t f_spare0; /* unused spare */ uint64_t f_spare[9]; /* unused spare */ uint32_t f_namemax; /* maximum filename length */ uid_t f_owner; /* user that mounted the filesystem */