Current-Users archive

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

Re: netbsd5-i386 is broken for me after this weekend's changes



On Mon, Nov 16, 2009 at 06:58:12AM -0800, Hisashi T Fujinaka wrote:
> This only showed up once in a half-dozen hangs. Has something changed?
> This system has been up and running with netbsd-5 since netbsd-5
> branched.
>
> The other symptom is that nfs seems to be the trigger point and
> rebooting never seems to finish due to unmounting. Rebooting takes
> forever because of fsck.

Could you try backing out the attached part of ticket #1129 ?
I think I got this part wrong; it calls vrelel but we didn't increase
v_usecount yet (at first glance the vrelel should be remplaced with
mutex_exit(&vp->v_interlock);)

-- 
Manuel Bouyer, LIP6, Universite Paris VI.           
Manuel.Bouyer%lip6.fr@localhost
     NetBSD: 26 ans d'experience feront toujours la difference
--
Index: src/sys/kern/vfs_subr.c
diff -u src/sys/kern/vfs_subr.c:1.357.4.5 src/sys/kern/vfs_subr.c:1.357.4.6
--- src/sys/kern/vfs_subr.c:1.357.4.5   Tue Jul 21 00:31:58 2009
+++ src/sys/kern/vfs_subr.c     Sun Nov  8 22:49:05 2009
@@ -370,6 +370,17 @@
        vp->v_freelisthd = NULL;
        mutex_exit(&vnode_free_list_lock);
 
+       if (vp->v_usecount != 0) {
+               /*
+                * was referenced again before we got the interlock
+                * Don't return to freelist - the holder of the last
+                * reference will destroy it.
+                */
+               vrelel(vp, 0); /* releases vp->v_interlock */
+               mutex_enter(&vnode_free_list_lock);
+               goto retry;
+       }
+
        /*
         * The vnode is still associated with a file system, so we must
         * clean it out before reusing it.  We need to add a reference


Home | Main Index | Thread Index | Old Index