d-reval-fin-20050529
authorChas Williams <chas@cmf.nrl.navy.mil>
Mon, 30 May 2005 05:12:10 +0000 (05:12 +0000)
committerDerrick Brashear <shadow@dementia.org>
Mon, 30 May 2005 05:12:10 +0000 (05:12 +0000)
FIXES 18588

last try at fixing d-revalidate

src/afs/LINUX/osi_vnodeops.c

index 762e3f9..943137f 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);