NetBSD-Bugs archive

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

PR/42318 CVS commit: [netbsd-5] src/sys/kern



The following reply was made to PR kern/42318; it has been noted by GNATS.

From: Stephen Borrill <sborrill%netbsd.org@localhost>
To: gnats-bugs%gnats.NetBSD.org@localhost
Cc: 
Subject: PR/42318 CVS commit: [netbsd-5] src/sys/kern
Date: Sat, 28 Nov 2009 18:59:12 +0000

 Module Name:   src
 Committed By:  sborrill
 Date:          Sat Nov 28 18:59:11 UTC 2009
 
 Modified Files:
        src/sys/kern [netbsd-5]: vfs_subr.c
 
 Log Message:
 Pull up the following revisions(s) (requested by bouyer in ticket #1171):
        sys/kern/vfs_subr.c:    revision 1.392
 
 Previous caused a deadlock with layered FS: the vrele thread can sleep on
 the vnode lock, while vget is sleeping on the VI_INACTNOW flag (or the vget
 caller is looping on vget returning failure because of the VI_INACTNOW
 flag). With layered FSes, the upper and lower vnodes share the same lock, so
 the vget() caller above can be already holding the vnode lock.
 
 Fix by dropping VI_INACTNOW before sleeping on the vnode lock in
 vrelel(), and check the ref count again once we have the lock. If the
 vnode has more than one reference, don't VOP_INACTIVE it.
 Fix PR kern/42318 and PR kern/42377
 
 
 To generate a diff of this commit:
 cvs rdiff -u -r1.357.4.7 -r1.357.4.8 src/sys/kern/vfs_subr.c
 
 Please note that diffs are not public domain; they are subject to the
 copyright notices on the relevant files.
 


Home | Main Index | Thread Index | Old Index