NetBSD-Bugs archive

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

PR/41374 CVS commit: [netbsd-5-0] src/sys



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

From: Soren Jacobsen <snj%netbsd.org@localhost>
To: gnats-bugs%gnats.NetBSD.org@localhost
Cc: 
Subject: PR/41374 CVS commit: [netbsd-5-0] src/sys
Date: Tue, 21 Jul 2009 00:29:33 +0000

 Module Name:   src
 Committed By:  snj
 Date:          Tue Jul 21 00:29:33 UTC 2009
 
 Modified Files:
        src/sys/kern [netbsd-5-0]: vfs_subr.c
        src/sys/sys [netbsd-5-0]: vnode.h
 
 Log Message:
 Pull up following revision(s) (requested by rmind in ticket #863):
        sys/sys/vnode.h: revision 1.207
        sys/kern/vfs_subr.c: revision 1.379
 put a flag bit into v_usecount to prevent vtryget during getcleanvnode.
 this fixes the following deadlock.
         a thread doing getcleanvnode:
         pick a vnode
         acqure v_interlock
         v_usecount++
         call vclean
                 now, another thread doing cache_lookup:
                 picks the vnode
                 vtryget succeed
                 vn_lock succeed
         now in vclean:
         set VI_XLOCK (too late to be noticed by the competing thread)
         wait on the vnode lock (this might violate locking order)
 the use of a flag bit was suggested by Andrew Doran.  PR/41374.
 
 
 To generate a diff of this commit:
 cvs rdiff -u -r1.357.4.4 -r1.357.4.4.2.1 src/sys/kern/vfs_subr.c
 cvs rdiff -u -r1.197 -r1.197.10.1 src/sys/sys/vnode.h
 
 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