]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
STABLE14-d-reval-fin-20050529
authorChas Williams <chas@cmf.nrl.navy.mil>
Mon, 30 May 2005 05:12:17 +0000 (05:12 +0000)
committerDerrick Brashear <shadow@dementia.org>
Mon, 30 May 2005 05:12:17 +0000 (05:12 +0000)
FIXES 18588

last try at fixing d-revalidate

(cherry picked from commit c7db062bea6e57242554a3eb8aa32ac0271c45ae)

src/afs/LINUX/osi_vnodeops.c

index 762e3f987b121714297e663d382821ddcd18b7c7..943137f3c6375c553b86e4bfdeb1867a67543edb 100644 (file)
@@ -883,22 +883,15 @@ afs_linux_dentry_revalidate(struct dentry *dp)
        goto done;
     }
 
-    /* parent's DataVersion changed? */
-    if (hgetlo(pvcp->m.DataVersion) > dp->d_time) {
-       bad_dentry = 11;
-       goto done;
-    }
-
-    /* If it's @sys, perhaps it has been changed */
-    if (!afs_ENameOK(dp->d_name.name)) {
-       bad_dentry = 10;
-       goto done;
-    }
-
     /* If it's the AFS root no chance it needs revalidating */
     if (vcp == afs_globalVp)
        goto good_dentry;
 
+    /* parent's DataVersion changed? */
+    if (hgetlo(pvcp->m.DataVersion) > dp->d_time) {
+       vcp->states &= ~CStatd; /* force afs_VerifyVCache() to go to the server */
+    }
+
     /* Get a validated vcache entry */
     credp = crref();
     code = afs_InitReq(&treq, credp);