diff --git a/sys/fs/nfsserver/nfs_nfsdport.c b/sys/fs/nfsserver/nfs_nfsdport.c --- a/sys/fs/nfsserver/nfs_nfsdport.c +++ b/sys/fs/nfsserver/nfs_nfsdport.c @@ -2666,9 +2666,14 @@ (nd->nd_flag & ND_NFSV4) != 0 && nvp->v_type == VDIR && nvp->v_mountedhere != NULL) { - new_mp = nvp->v_mountedhere; - r = vfs_busy(new_mp, 0); - vput(nvp); + bool unlocked; + + r = vn_busy_mountedhere( + nvp, &unlocked, &new_mp); + if (!unlocked) + vput(nvp); + else + vrele(nvp); nvp = NULL; if (r == 0) { r = VFS_ROOT(new_mp,