Whamcloud - gitweb
b=5210
authoralex <alex>
Wed, 27 Jul 2005 17:20:02 +0000 (17:20 +0000)
committeralex <alex>
Wed, 27 Jul 2005 17:20:02 +0000 (17:20 +0000)
commite98167379b1befa1af0001ee84b5d77969c3f5ba
tree3e0ec35b53dd689371b1833b53f93b188e1a4c70
parent7a1890d42a77e98d79a8245c9a808ae4ac0d8221
b=5210
r=phil(actual patch)

A workaround for the crash in ll_unhash_aliases on 2.6.
The 2.6 lookup code is now lockless (thanks to the RCU machinations), which
allows it to race with the unhashing in ll_unhash_aliases. The 2.6 __d_drop
doesn't leave the list head ->pprev in a safe state, so the next pass through
this loop (which tries to re-hash it after we lose the dput race), would crash.
For the record, it looks like the kernel's own d_prune_aliases is broken in
the very same way, except that instead of crashing immediately, it just leaves
the d_hash pointers poisoned for someone else to crash on.
lustre/llite/dcache.c