vol: make namei_ListAFSSubDirs deal with multiple/bad linktables
authorTom Keiser <tkeiser@sinenomine.net>
Thu, 14 Oct 2010 05:24:03 +0000 (01:24 -0400)
committerDerrick Brashear <shadow@dementia.org>
Tue, 9 Nov 2010 19:12:30 +0000 (11:12 -0800)
commit19d2e0e34b5f100fdbec1da8373badd624c02248
treebc645cd213790541ad11ae331c80b2fe472e3d0a
parentf9409fcdffa594aff9530038a5ac81a2495da3b6
vol: make namei_ListAFSSubDirs deal with multiple/bad linktables

The salvager ends up deadlocking when multiple linktables exist
in the same volume group special directory.  The issue is that we
open and flock all discovered linktables, but only close out the
last one found.  Consequently, when our child scans the linktables
again, we deadlock against the locked and leaked descriptor(s) our
parent left around before forking.

While we have so far been unable to root-cause the actual creation
of spurious linktables, this patch will at least stop the salvager
from deadlocking against itself when this occurs.

Change-Id: I67821f2c99663c56e4ec0b008e1d2d3a8751df0e
Reviewed-on: http://gerrit.openafs.org/2979
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@dementia.org>
src/vol/namei_ops.c