Dentries should always have a parent. Even when a dentry has to be
forgotten, we forget it by removing it from the hash chains but _not_
removing the parent (so a parent can actually have multiple child dentries
with the same name, but only one "active" dentry that you can reach
through the hashes).
However, 2.1.47 does have a bug if you use autofs, in that the autofs
dentry revalidation will be called without increasing the dentry count. So
if you're revalidating a autofs dentry at the same time as the dcache is
shrunk, the dentry will be pulled out from under you, with random results.
That's fixed in the current pre-patch-48 - but this is really only an
issue if you use autofs. Do the people who have seen crashes use autofs?
(autofs is very cool, and this wasn't really an autofs bug at all, but a
VFS bug that just happened to trigger in autofs).
If autofs wasn't implicated, then we should indeed start looking for
something where the hashes do not match the parents..
Linus