afs: Ensure afs_calc_inum yields nonzero ino
authorAndrew Deason <adeason@sinenomine.net>
Wed, 22 Jun 2011 18:44:38 +0000 (13:44 -0500)
committerDerrick Brashear <shadow@dementia.org>
Wed, 6 Jul 2011 20:41:46 +0000 (13:41 -0700)
commit39083fe1edab784fcd75eacbdaaf7f6affa14c9f
tree2c9db258eedb54e6c58c01b74b8b84fe88fbd2da
parent34bdd979fc487843c26f15655b94eac7c8f98fee
afs: Ensure afs_calc_inum yields nonzero ino

afs_calc_inum can currently yield an inode of 0 if MD5-based inode
numbers are turned on. Some userspace applications (and for some
platforms, maybe even the kernel) make certain assumptions about the
inode number for a file; in particular for example, 'ls' will not
display a file with inode 0 in a normal directory listing.

So, read the md5 digest until we get a non-zero result. Fall back to
the non-md5 calculation if we still somehow end up with a 0.

While this case may at first glance seem to be extremely rare, in
practice it can occur, as the current calculation for volume
538313506, vnode 26178 does actually yield a 0.

Change-Id: Iee1ef4cc2ad66269f2c677e29d586ef0964d7c70
Reviewed-on: http://gerrit.openafs.org/4901
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
src/afs/afs_util.c