]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
afs: Do not avoid DNLC if fakestat is set
authorAndrew Deason <adeason@sinenomine.net>
Fri, 18 May 2012 21:55:09 +0000 (17:55 -0400)
committerStephan Wiesand <stephan.wiesand@desy.de>
Wed, 3 Apr 2013 16:43:58 +0000 (09:43 -0700)
Currently in afs_lookup we avoid putting an entry in the DNLC if
'force_eval' is unset, in order to avoid populating the DNLC with
mountpoint symlinks (we want the target of the mountpoint to be in
there instead, the root dir). However, if -fakestat or -fakestat-all
are enabled, 'force_eval' is always false, since we only set it to
true under certain circumstances when evaluating mountpoints.

To fix this, populate the dnlc for non-mountpoints, even if force_eval
is unset.

Reviewed-on: http://gerrit.openafs.org/7431
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
Tested-by: BuildBot <buildbot@rampaginggeek.com>
(cherry picked from commit 35d5be2adf2456e26aa6b10935352dc19eb6b3f2)

Change-Id: I32f859c4478432de65025f35ae0c484ff7fa1bf0
Reviewed-on: http://gerrit.openafs.org/9494
Tested-by: BuildBot <buildbot@rampaginggeek.com>
Reviewed-by: Derrick Brashear <shadow@your-file-system.com>
Reviewed-by: Andrew Deason <adeason@sinenomine.net>
Reviewed-by: Michael Meffie <mmeffie@sinenomine.net>
Reviewed-by: Stephan Wiesand <stephan.wiesand@desy.de>
src/afs/VNOPS/afs_vnop_lookup.c

index d076a0d35f764c10f5dc16ef5adcdc64da19e04f..5d96f75c10f191401bafe8b56b57c20a070a75ab 100644 (file)
@@ -1930,7 +1930,7 @@ afs_lookup(OSI_VC_DECL(adp), char *aname, struct vcache **avcp, afs_ucred_t *acr
             * volume) rather than the vc of the mount point itself.  We can
             * still find the mount point's vc in the vcache by its fid. */
 #endif /* UKERNEL */
-           if (!hit && force_eval) {
+           if (!hit && (force_eval || tvc->mvstat != 1)) {
                osi_dnlc_enter(adp, aname, tvc, &versionNo);
            } else {
 #ifdef AFS_LINUX20_ENV