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
This commit is contained in:
Doug Ambrisko 2022-06-14 14:37:27 -07:00
parent d87fad3633
commit ce00b11940
3 changed files with 4 additions and 17 deletions

View file

@ -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");
}
}

View file

@ -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));
}

View file

@ -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 */