DragonFly commits List (threaded) for 2005-03
cvs commit: src/sys/kern vfs_cache.c
dillon 2005/03/08 21:16:23 PST
DragonFly src repository
Fix a serious bug in cache_inval_vp()'s TAILQ iteration through v_namecache.
It was iterating using nc_entry instead of nc_vnode. The effect was,
typically, to deadlock in the namecache locking code but could also result
in the namecache topology becoming confused.
Add code to detect and report vnode ripouts during the scan. This case can
occur in certain rare circumstances because a held namecache structure only
prevents it from being removed from the topology, it does not prevent it
from being disassociated from a vnode.
Reported-by: Michael van Tellingen <michael@xxxxxxxxxxxx> and
Hiten Pandya <hmp@xxxxxxxxxxxxx>
Revision Changes Path
1.52 +20 -1 src/sys/kern/vfs_cache.c