bouyer aa0e1a2ecf vclean() actually sets v_tag to VT_NON but doesn't touch v_type.
getcleanvnode() sets v_type to VNON after releasing v_interlock.
So the thread doing quotaon(), quotaoff() or qsync() could vget()
a vnode which is being recycled in getcleanvnode(), after is has
been cleaned and v_interlock released, but before v_type has been
reset, leading to KASSERT(vp->v_usecount == 1) firing in
getnewvnode(), or qsync() dereferending a NULL pointer as in
PR kern/42205.
Fix by using the same tests as other ffs function traversing the mount
list: also check for VTOI(vp) == NULL, and VI_XLOCK in addition
to VI_CLEAN.
2010-01-15 19:46:35 +00:00
2010-01-15 19:18:51 +00:00
2010-01-14 21:35:57 +00:00
2010-01-14 07:47:53 +00:00
2010-01-12 03:56:17 +00:00
2010-01-15 19:39:10 +00:00
2010-01-13 20:18:24 +00:00
2010-01-14 22:06:54 +00:00
2010-01-15 19:24:49 +00:00
2010-01-15 11:27:01 +00:00
2010-01-15 19:39:10 +00:00
2010-01-15 19:19:32 +00:00
Description
No description provided
3.1 GiB
Languages
C 85.3%
Roff 7.2%
Assembly 3.1%
Shell 1.7%
Makefile 1.2%
Other 0.9%