The branch main has been updated by kib:

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

commit fd50bb3f7cd0762755ba6bf12d506da2544d4756
Author:     Konstantin Belousov <k...@freebsd.org>
AuthorDate: 2025-08-04 20:12:28 +0000
Commit:     Konstantin Belousov <k...@freebsd.org>
CommitDate: 2025-08-04 22:26:25 +0000

    vop_fsync_debugprepost(): take account of nullfs
    
    Reported by:    netchild
    Reviewed and tested by: markj
    Sponsored by:   The FreeBSD Foundation
    Differential revision:  https://reviews.freebsd.org/D51730
---
 sys/kern/vfs_subr.c | 16 ++++++++++++----
 1 file changed, 12 insertions(+), 4 deletions(-)

diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c
index 4eac8bb0c8bb..a6e38be89291 100644
--- a/sys/kern/vfs_subr.c
+++ b/sys/kern/vfs_subr.c
@@ -5897,6 +5897,8 @@ vop_fplookup_symlink_debugpost(void *ap __unused, int rc 
__unused)
 static void
 vop_fsync_debugprepost(struct vnode *vp, const char *name)
 {
+       struct mount *mp;
+
        if (vp->v_type == VCHR)
                ;
        /*
@@ -5914,10 +5916,16 @@ vop_fsync_debugprepost(struct vnode *vp, const char 
*name)
         * should still be caught when the stacked filesystem
         * invokes VOP_FSYNC() on the underlying filesystem.
         */
-       else if (MNT_SHARED_WRITES(vp->v_mount))
-               ASSERT_VOP_LOCKED(vp, name);
-       else
-               ASSERT_VOP_ELOCKED(vp, name);
+       else {
+               mp = NULL;
+               VOP_GETWRITEMOUNT(vp, &mp);
+               if (vn_lktype_write(mp, vp) == LK_SHARED)
+                       ASSERT_VOP_LOCKED(vp, name);
+               else
+                       ASSERT_VOP_ELOCKED(vp, name);
+               if (mp != NULL)
+                       vfs_rel(mp);
+       }
 }
 
 void

Reply via email to