From 7bcd8c5884683a38cbe04faa631bda15b38a492b Mon Sep 17 00:00:00 2001 From: Marc Dionne Date: Tue, 25 Jan 2011 18:18:56 -0500 Subject: [PATCH 6/8] 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: Id346ca87a1a064ab7d66140156cb8eb48a888566 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 Reviewed-on: http://gerrit.openafs.org/4042 Reviewed-by: Derrick Brashear Tested-by: Derrick Brashear --- src/afs/LINUX/osi_vnodeops.c | 6 ++++++ 1 files changed, 6 insertions(+), 0 deletions(-) diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c index 03294b2..e2a3e28 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) { -- 1.7.3.4