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