Source-Changes-HG archive

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

[src/netbsd-1-5]: src/sys/ufs/ext2fs pullup rev. 1.38 from trunk (approved by...



details:   https://anonhg.NetBSD.org/src/rev/973fe056c693
branches:  netbsd-1-5
changeset: 488689:973fe056c693
user:      jdolecek <jdolecek%NetBSD.org@localhost>
date:      Mon Jul 24 20:21:46 2000 +0000

description:
pullup rev. 1.38 from trunk (approved by thorpej):
ext2fs_reload(), ext2fs_mountfs(): do devvp locking same way as ffs
this has not shown any good or bad effect, but might help narrow
some problems people seen with ext2fs reload

diffstat:

 sys/ufs/ext2fs/ext2fs_vfsops.c |  12 +++++++++---
 1 files changed, 9 insertions(+), 3 deletions(-)

diffs (33 lines):

diff -r da1959366181 -r 973fe056c693 sys/ufs/ext2fs/ext2fs_vfsops.c
--- a/sys/ufs/ext2fs/ext2fs_vfsops.c    Mon Jul 24 17:42:30 2000 +0000
+++ b/sys/ufs/ext2fs/ext2fs_vfsops.c    Mon Jul 24 20:21:46 2000 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: ext2fs_vfsops.c,v 1.36.2.1 2000/07/03 17:44:02 fvdl Exp $      */
+/*     $NetBSD: ext2fs_vfsops.c,v 1.36.2.2 2000/07/24 20:21:46 jdolecek Exp $  */
 
 /*
  * Copyright (c) 1997 Manuel Bouyer.
@@ -373,7 +373,10 @@
         * Step 1: invalidate all cached meta-data.
         */
        devvp = VFSTOUFS(mountp)->um_devvp;
-       if (vinvalbuf(devvp, 0, cred, p, 0, 0))
+       vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY);
+       error = vinvalbuf(devvp, 0, cred, p, 0, 0);
+       VOP_UNLOCK(devvp, 0);
+       if (error)
                panic("ext2fs_reload: dirty1");
        /*
         * Step 2: re-read superblock from disk.
@@ -505,7 +508,10 @@
                return (error);
        if (vcount(devvp) > 1 && devvp != rootvp)
                return (EBUSY);
-       if ((error = vinvalbuf(devvp, V_SAVE, cred, p, 0, 0)) != 0)
+       vn_lock(devvp, LK_EXCLUSIVE | LK_RETRY);
+       error = vinvalbuf(devvp, V_SAVE, cred, p, 0, 0);
+       VOP_UNLOCK(devvp, 0);
+       if (error)
                return (error);
 
        ronly = (mp->mnt_flag & MNT_RDONLY) != 0;



Home | Main Index | Thread Index | Old Index