git: 61a1d5dde216 - main - vfs: stop using the V_MNTREF flag

From: Mateusz Guzik <mjg_at_FreeBSD.org>
Date: Wed, 14 Sep 2022 18:16:57 UTC
The branch main has been updated by mjg:

URL: https://cgit.FreeBSD.org/src/commit/?id=61a1d5dde21695d710a6028ece79bb98e22ca6af

commit 61a1d5dde21695d710a6028ece79bb98e22ca6af
Author:     Mateusz Guzik <mjg@FreeBSD.org>
AuthorDate: 2022-09-10 20:12:08 +0000
Commit:     Mateusz Guzik <mjg@FreeBSD.org>
CommitDate: 2022-09-14 18:16:23 +0000

    vfs: stop using the V_MNTREF flag
    
    Reviewed by:    kib, mckusick
    Differential Revision:  https://reviews.freebsd.org/D36521
---
 sys/kern/vfs_mount.c | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/sys/kern/vfs_mount.c b/sys/kern/vfs_mount.c
index 7d74ec8b0a9e..31566f521d22 100644
--- a/sys/kern/vfs_mount.c
+++ b/sys/kern/vfs_mount.c
@@ -1703,6 +1703,7 @@ dounmount_cleanup(struct mount *mp, struct vnode *coveredvp, int mntkflags)
 		vdrop(coveredvp);
 	}
 	vn_finished_write(mp);
+	vfs_rel(mp);
 }
 
 /*
@@ -2127,7 +2128,7 @@ dounmount(struct mount *mp, uint64_t flags, struct thread *td)
 
 	vfs_op_enter(mp);
 
-	vn_start_write(NULL, &mp, V_WAIT | V_MNTREF);
+	vn_start_write(NULL, &mp, V_WAIT);
 	MNT_ILOCK(mp);
 	if ((mp->mnt_kern_flag & MNTK_UNMOUNT) != 0 ||
 	    (mp->mnt_flag & MNT_UPDATE) != 0 ||
@@ -2200,6 +2201,7 @@ dounmount(struct mount *mp, uint64_t flags, struct thread *td)
 	vfs_deallocate_syncvnode(mp);
 	error = VFS_UNMOUNT(mp, flags);
 	vn_finished_write(mp);
+	vfs_rel(mp);
 	/*
 	 * If we failed to flush the dirty blocks for this mount point,
 	 * undo all the cdir/rdir and rootvnode changes we made above.