Source-Changes-HG archive

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]

[src/trunk]: src/sys/fs/puffs Add missing mutex pn->pn_sizemtx lock in puffs_...



details:   https://anonhg.NetBSD.org/src/rev/582ca08cef60
branches:  trunk
changeset: 994381:582ca08cef60
user:      manu <manu%NetBSD.org@localhost>
date:      Mon Nov 05 02:28:32 2018 +0000

description:
Add missing mutex pn->pn_sizemtx lock in puffs_vnop_open()

puffs_vnop_open() calls flushvncache(), which calls dosetattr()
if pn->pn_stat has PNODE_METACACHE_MASK. In that case, the lock
on pn->pn_sizemtx is mandatory and asserted.

diffstat:

 sys/fs/puffs/puffs_vnops.c |  7 +++++--
 1 files changed, 5 insertions(+), 2 deletions(-)

diffs (29 lines):

diff -r 0f03457f870f -r 582ca08cef60 sys/fs/puffs/puffs_vnops.c
--- a/sys/fs/puffs/puffs_vnops.c        Mon Nov 05 00:43:30 2018 +0000
+++ b/sys/fs/puffs/puffs_vnops.c        Mon Nov 05 02:28:32 2018 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: puffs_vnops.c,v 1.211 2017/05/26 14:21:01 riastradh Exp $      */
+/*     $NetBSD: puffs_vnops.c,v 1.212 2018/11/05 02:28:32 manu Exp $   */
 
 /*
  * Copyright (c) 2005, 2006, 2007  Antti Kantee.  All Rights Reserved.
@@ -30,7 +30,7 @@
  */
 
 #include <sys/cdefs.h>
-__KERNEL_RCSID(0, "$NetBSD: puffs_vnops.c,v 1.211 2017/05/26 14:21:01 riastradh Exp $");
+__KERNEL_RCSID(0, "$NetBSD: puffs_vnops.c,v 1.212 2018/11/05 02:28:32 manu Exp $");
 
 #include <sys/param.h>
 #include <sys/buf.h>
@@ -913,7 +913,10 @@
                 * - we do not want to discard cached write by direct write
                 * - read cache is now useless and should be freed
                 */
+               mutex_enter(&pn->pn_sizemtx);
                flushvncache(vp, 0, 0, true);
+               mutex_exit(&pn->pn_sizemtx);
+
                if (mode & FREAD)
                        pn->pn_stat |= PNODE_RDIRECT;
                if (mode & FWRITE)



Home | Main Index | Thread Index | Old Index