namei: Ignore misplaced files
authorAndrew Deason <adeason@sinenomine.net>
Fri, 30 Aug 2013 19:21:16 +0000 (14:21 -0500)
committerD Brashear <shadow@your-file-system.com>
Wed, 5 Feb 2014 15:06:44 +0000 (07:06 -0800)
commit1096582bde6156bb469f2e397cbc40d13a8f2822
tree745e737b26f6e5b6850aab365e36443b0da95f21
parent602e8eb2000be02ef2a6627633b7ba80ea847762
namei: Ignore misplaced files

The namei salvaging/ListViceInodes code currently ignores files where
we cannot derive an inode number from a given filename. However, if a
file is a valid inode filename, but is in the wrong directory, we
still record it. This can cause the salvager to abort, since it
assumes inode e.g. 12345 is present, but when it tries to open 12345,
namei translates the inode to a nonexistant path, and we bail out.

It is unknown how a namei directory structure can reach this state,
but try to handle it. To be on the safe side, just ignore the files,
and log a message about them. That way, if the files are required for
reconstructing the volume or contain important data, they are still
available if needed. And if they contain incorrect or old data, we
don't screw up the volume by trying to use them.

Thanks to Sabah S. Salih for reporting a related issue.

Change-Id: I529e0c51f48b5b7a62d6aab0470fad71788a5b69
Reviewed-on: http://gerrit.openafs.org/10214
Reviewed-by: D Brashear <shadow@your-file-system.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
src/vol/namei_ops.c