diff options
| author | hannken <hannken@NetBSD.org> | 2022-04-16 07:58:21 +0000 |
|---|---|---|
| committer | hannken <hannken@NetBSD.org> | 2022-04-16 07:58:21 +0000 |
| commit | c68160fffdcc87d66b15e7a6f253eed36308a6f0 (patch) | |
| tree | c54a1939af9c05337b53972703ce26793ef07d35 /sys/fs | |
| parent | 7e86e8d8305dfc45996089be8073feb313827e6a (diff) | |
Lock vnode for vinvalbuf().
Diffstat (limited to 'sys/fs')
| -rw-r--r-- | sys/fs/msdosfs/msdosfs_vfsops.c | 9 |
1 files changed, 6 insertions, 3 deletions
diff --git a/sys/fs/msdosfs/msdosfs_vfsops.c b/sys/fs/msdosfs/msdosfs_vfsops.c index b5ea8627211..b760383903e 100644 --- a/sys/fs/msdosfs/msdosfs_vfsops.c +++ b/sys/fs/msdosfs/msdosfs_vfsops.c @@ -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, struct mount *mp, struct lwp *l, struct msd 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; |
