NetBSD-Bugs archive
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index][Old Index]
PR/41374 CVS commit: [netbsd-5] 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] src/sys
Date: Tue, 21 Jul 2009 00:31:58 +0000
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