Source-Changes archive

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

CVS commit: [netbsd-5] src/sys



Module Name:    src
Committed By:   snj
Date:           Tue Jul 21 00:31:58 UTC 2009

Modified Files:
        src/sys/kern [netbsd-5]: vfs_subr.c
        src/sys/sys [netbsd-5]: 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.5 src/sys/kern/vfs_subr.c
cvs rdiff -u -r1.197 -r1.197.4.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