Linux: Prevent some fakestat data inconsistencies
authorMarc Dionne <marc.dionne@your-file-system.com>
Fri, 2 May 2014 18:10:06 +0000 (14:10 -0400)
committerD Brashear <shadow@your-file-system.com>
Sat, 10 May 2014 12:56:32 +0000 (08:56 -0400)
commitd075b0549d62e4a81b7543b9c2f5dac242074909
treefa04d121303457074286a50397339ba8d58e97de
parentaad509a7e11432bbe8cf0a3a0adaa78d7f9c9da5
Linux: Prevent some fakestat data inconsistencies

When fakestat is enabled for a mount point, the parent vcache
entry is not the right place to find the DataVersion of
the target volume root directory.  This can lead to data
inconsistency since the revalidation checks rely on the parent's
DataVersion to determine if a file entry is still valid.  If the
file was replaced or deleted remotely, the only callback we
get is for the parent directory, and in that case the client
will think the file entry is still valid and give back stale
data to the user.

If fakestat is enabled and we have a mountpoint, always use
the parent vcache pointer returned by FakeStat before using it
to either store (in the lookup and create ops) or compare
(in the revalidate op) the DataVersion.

FIXES 131855

Change-Id: I03c05c1dab39e663b74635700e80ba70861b1c2e
Reviewed-on: http://gerrit.openafs.org/11118
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Chas Williams - CONTRACTOR <chas@cmf.nrl.navy.mil>
Reviewed-by: D Brashear <shadow@your-file-system.com>
src/afs/LINUX/osi_vnodeops.c