Source-Changes-HG archive

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

[src/trunk]: src/gnu/sys/ufs/ffs Fix locking order in softdep_setup_blkmapdep...



details:   https://anonhg.NetBSD.org/src/rev/f5d422a16ee5
branches:  trunk
changeset: 486933:f5d422a16ee5
user:      mycroft <mycroft%NetBSD.org@localhost>
date:      Wed May 31 02:06:57 2000 +0000

description:
Fix locking order in softdep_setup_blkmapdep() that was broken in 1.5.  This
could cause strange locking-related panics if you were unlucky.

diffstat:

 gnu/sys/ufs/ffs/ffs_softdep.c |  4 ++--
 1 files changed, 2 insertions(+), 2 deletions(-)

diffs (20 lines):

diff -r 28bc652b6209 -r f5d422a16ee5 gnu/sys/ufs/ffs/ffs_softdep.c
--- a/gnu/sys/ufs/ffs/ffs_softdep.c     Wed May 31 01:46:15 2000 +0000
+++ b/gnu/sys/ufs/ffs/ffs_softdep.c     Wed May 31 02:06:57 2000 +0000
@@ -1,4 +1,4 @@
-/*     $NetBSD: ffs_softdep.c,v 1.13 2000/05/31 00:16:16 mycroft Exp $ */
+/*     $NetBSD: ffs_softdep.c,v 1.14 2000/05/31 02:06:57 mycroft Exp $ */
 
 /*
  * Copyright 1998 Marshall Kirk McKusick. All Rights Reserved.
@@ -1057,9 +1057,9 @@
         * Add it to the dependency list for the buffer holding
         * the cylinder group map from which it was allocated.
         */
-       ACQUIRE_LOCK(&lk);
        if (newblk_lookup(fs, newblkno, DEPALLOC, &newblk) != 0)
                panic("softdep_setup_blkmapdep: found block");
+       ACQUIRE_LOCK(&lk);
        newblk->nb_bmsafemap = bmsafemap = bmsafemap_lookup(bp);
        LIST_INSERT_HEAD(&bmsafemap->sm_newblkhd, newblk, nb_deps);
        FREE_LOCK(&lk);



Home | Main Index | Thread Index | Old Index