The branch main has been updated by mjg:

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

commit 61a1d5dde21695d710a6028ece79bb98e22ca6af
Author:     Mateusz Guzik <[email protected]>
AuthorDate: 2022-09-10 20:12:08 +0000
Commit:     Mateusz Guzik <[email protected]>
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.

Reply via email to