The branch stable/13 has been updated by kib:

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

commit 7782d71671908886b88a4d1d50732ab8bc95385e
Author:     Konstantin Belousov <[email protected]>
AuthorDate: 2022-01-21 15:42:28 +0000
Commit:     Konstantin Belousov <[email protected]>
CommitDate: 2022-02-07 09:38:50 +0000

    syncer VOP_FSYNC(): unlock syncer vnode around call to VFS_SYNC()
    
    (cherry picked from commit 3d68c4e17578684cfdfd002fb6ab8554df525963)
---
 sys/kern/vfs_subr.c | 7 ++-----
 1 file changed, 2 insertions(+), 5 deletions(-)

diff --git a/sys/kern/vfs_subr.c b/sys/kern/vfs_subr.c
index f56bedecaf15..a7a432d31a55 100644
--- a/sys/kern/vfs_subr.c
+++ b/sys/kern/vfs_subr.c
@@ -5107,10 +5107,7 @@ sync_fsync(struct vop_fsync_args *ap)
         */
        if (vfs_busy(mp, MBF_NOWAIT) != 0)
                return (0);
-       if (vn_start_write(NULL, &mp, V_NOWAIT) != 0) {
-               vfs_unbusy(mp);
-               return (0);
-       }
+       VOP_UNLOCK(syncvp);
        save = curthread_pflags_set(TDP_SYNCIO);
        /*
         * The filesystem at hand may be idle with free vnodes stored in the
@@ -5119,7 +5116,7 @@ sync_fsync(struct vop_fsync_args *ap)
        vfs_periodic(mp, MNT_NOWAIT);
        error = VFS_SYNC(mp, MNT_LAZY);
        curthread_pflags_restore(save);
-       vn_finished_write(mp);
+       vn_lock(syncvp, LK_EXCLUSIVE | LK_RETRY);
        vfs_unbusy(mp);
        return (error);
 }

Reply via email to