From 59459cef97317f5e72d8065e648c0bf231f4641e Mon Sep 17 00:00:00 2001 From: Marc Dionne Date: Tue, 25 Jan 2011 18:18:56 -0500 Subject: [PATCH] linux: 2.6.38: Make d_revalidate RCU-walk aware Signal to the vfs that we don't support path RCU walk in d_revalidate. It will call back in non-RCU mode. Reviewed-on: http://gerrit.openafs.org/3759 Tested-by: BuildBot Reviewed-by: Derrick Brashear (cherry picked from commit 52556d50298e4a636f07e9a3cf0b6557c882c82d) Change-Id: I6662782068e317a36ca70caa0d09665ff2183c2d Signed-off-by: Anders Kaseorg Reviewed-on: http://gerrit.openafs.org/3995 Reviewed-by: Simon Wilkinson Tested-by: BuildBot Reviewed-by: Marc Dionne Reviewed-by: Russ Allbery (cherry picked from commit 9a91534004f853de427a661347fe029218ea9ac2) --- src/afs/LINUX/osi_vnodeops.c | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c index 03294b2e9..e2a3e283b 100644 --- a/src/afs/LINUX/osi_vnodeops.c +++ b/src/afs/LINUX/osi_vnodeops.c @@ -865,10 +865,16 @@ afs_linux_dentry_revalidate(struct dentry *dp) int valid; struct afs_fakestat_state fakestate; +#ifdef LOOKUP_RCU + /* We don't support RCU path walking */ + if (nd->flags & LOOKUP_RCU) + return -ECHILD; +#endif #ifdef AFS_LINUX24_ENV lock_kernel(); #endif AFS_GLOCK(); + afs_InitFakeStat(&fakestate); if (dp->d_inode) { -- 2.39.5