From: Chas Williams Date: Mon, 30 May 2005 05:12:10 +0000 (+0000) Subject: d-reval-fin-20050529 X-Git-Tag: openafs-devel-1_5_0~543 X-Git-Url: https://git.openafs.org/?p=openafs.git;a=commitdiff_plain;h=c7db062bea6e57242554a3eb8aa32ac0271c45ae d-reval-fin-20050529 FIXES 18588 last try at fixing d-revalidate --- diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c index 762e3f9..943137f 100644 --- a/src/afs/LINUX/osi_vnodeops.c +++ b/src/afs/LINUX/osi_vnodeops.c @@ -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);