salvager: Handle multiple/inconsistent linktables
authorAndrew Deason <adeason@sinenomine.net>
Thu, 3 Oct 2013 17:51:41 +0000 (12:51 -0500)
committerD Brashear <shadow@your-file-system.com>
Wed, 5 Feb 2014 15:06:36 +0000 (07:06 -0800)
commit602e8eb2000be02ef2a6627633b7ba80ea847762
tree7ff9ca28ea4a0407b77327e04b10bdcc4bf572a3
parent9fca71287d2c9730139a0472c6ee891603e72672
salvager: Handle multiple/inconsistent linktables

The ListAFSSubDirs code in namei_ops.c currently detects
incorrectly-named linktable files, and whines about them and says the
salvager will handle them. However, the salvager doesn't really handle
them, since we just use the first linktable we find (FindLinkHandle)
without checking any of the information about it.

So, check for these. Fix FindLinkHandle to only consider a linktable
the "real" linktable to use if it actually matches the volume group id
we're salvaging. Also delete any inconsistent linktables via the new
function CheckDupLinktable later on.

Note that inconsistently-named linktables have been known to have been
created in the past due to a bug in the salvager (fixed by ae227049),
and possibly due to other unknown issues.

Change-Id: Iac461e1254e1f73406a2bc74eaa5a5f53d697304
Reviewed-on: http://gerrit.openafs.org/10322
Reviewed-by: Mark Vitale <mvitale@sinenomine.net>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: D Brashear <shadow@your-file-system.com>
src/vol/vol-salvage.c