Module Name: src Committed By: hannken Date: Sat Apr 16 07:58:21 UTC 2022
Modified Files: src/sys/fs/msdosfs: msdosfs_vfsops.c Log Message: Lock vnode for vinvalbuf(). To generate a diff of this commit: cvs rdiff -u -r1.137 -r1.138 src/sys/fs/msdosfs/msdosfs_vfsops.c Please note that diffs are not public domain; they are subject to the copyright notices on the relevant files.
Modified files: Index: src/sys/fs/msdosfs/msdosfs_vfsops.c diff -u src/sys/fs/msdosfs/msdosfs_vfsops.c:1.137 src/sys/fs/msdosfs/msdosfs_vfsops.c:1.138 --- src/sys/fs/msdosfs/msdosfs_vfsops.c:1.137 Sat Oct 23 16:58:17 2021 +++ src/sys/fs/msdosfs/msdosfs_vfsops.c Sat Apr 16 07:58:21 2022 @@ -1,4 +1,4 @@ -/* $NetBSD: msdosfs_vfsops.c,v 1.137 2021/10/23 16:58:17 thorpej Exp $ */ +/* $NetBSD: msdosfs_vfsops.c,v 1.138 2022/04/16 07:58:21 hannken Exp $ */ /*- * Copyright (C) 1994, 1995, 1997 Wolfgang Solfrank. @@ -48,7 +48,7 @@ */ #include <sys/cdefs.h> -__KERNEL_RCSID(0, "$NetBSD: msdosfs_vfsops.c,v 1.137 2021/10/23 16:58:17 thorpej Exp $"); +__KERNEL_RCSID(0, "$NetBSD: msdosfs_vfsops.c,v 1.138 2022/04/16 07:58:21 hannken Exp $"); #if defined(_KERNEL_OPT) #include "opt_compat_netbsd.h" @@ -472,7 +472,10 @@ msdosfs_mountfs(struct vnode *devvp, str u_long fatbytes, fatblocksecs; /* Flush out any old buffers remaining from a previous use. */ - if ((error = vinvalbuf(devvp, V_SAVE, l->l_cred, l, 0, 0)) != 0) + vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY); + error = vinvalbuf(devvp, V_SAVE, l->l_cred, l, 0, 0); + VOP_UNLOCK(devvp); + if (error) return (error); ronly = (mp->mnt_flag & MNT_RDONLY) != 0;