| [1835] | 1 | From 7bcd8c5884683a38cbe04faa631bda15b38a492b Mon Sep 17 00:00:00 2001 | 
|---|
 | 2 | From: Marc Dionne <marc.c.dionne@gmail.com> | 
|---|
 | 3 | Date: Tue, 25 Jan 2011 18:18:56 -0500 | 
|---|
 | 4 | Subject: [PATCH 6/8] linux: 2.6.38: Make d_revalidate RCU-walk aware | 
|---|
 | 5 |  | 
|---|
 | 6 | Signal to the vfs that we don't support path RCU walk in | 
|---|
 | 7 | d_revalidate.  It will call back in non-RCU mode. | 
|---|
 | 8 |  | 
|---|
 | 9 | Reviewed-on: http://gerrit.openafs.org/3759 | 
|---|
 | 10 | Tested-by: BuildBot <buildbot@rampaginggeek.com> | 
|---|
 | 11 | Reviewed-by: Derrick Brashear <shadow@dementia.org> | 
|---|
 | 12 | (cherry picked from commit 52556d50298e4a636f07e9a3cf0b6557c882c82d) | 
|---|
 | 13 |  | 
|---|
 | 14 | Change-Id: Id346ca87a1a064ab7d66140156cb8eb48a888566 | 
|---|
 | 15 | Signed-off-by: Anders Kaseorg <andersk@mit.edu> | 
|---|
 | 16 | Reviewed-on: http://gerrit.openafs.org/3995 | 
|---|
 | 17 | Reviewed-by: Simon Wilkinson <sxw@inf.ed.ac.uk> | 
|---|
 | 18 | Tested-by: BuildBot <buildbot@rampaginggeek.com> | 
|---|
 | 19 | Reviewed-by: Marc Dionne <marc.c.dionne@gmail.com> | 
|---|
 | 20 | Reviewed-by: Russ Allbery <rra@stanford.edu> | 
|---|
 | 21 | Reviewed-on: http://gerrit.openafs.org/4042 | 
|---|
 | 22 | Reviewed-by: Derrick Brashear <shadow@dementia.org> | 
|---|
 | 23 | Tested-by: Derrick Brashear <shadow@dementia.org> | 
|---|
 | 24 | --- | 
|---|
 | 25 |  src/afs/LINUX/osi_vnodeops.c |    6 ++++++ | 
|---|
 | 26 |  1 files changed, 6 insertions(+), 0 deletions(-) | 
|---|
 | 27 |  | 
|---|
 | 28 | diff --git a/src/afs/LINUX/osi_vnodeops.c b/src/afs/LINUX/osi_vnodeops.c | 
|---|
 | 29 | index 03294b2..e2a3e28 100644 | 
|---|
 | 30 | --- a/src/afs/LINUX/osi_vnodeops.c | 
|---|
 | 31 | +++ b/src/afs/LINUX/osi_vnodeops.c | 
|---|
 | 32 | @@ -865,10 +865,16 @@ afs_linux_dentry_revalidate(struct dentry *dp) | 
|---|
 | 33 |      int valid; | 
|---|
 | 34 |      struct afs_fakestat_state fakestate; | 
|---|
 | 35 |   | 
|---|
 | 36 | +#ifdef LOOKUP_RCU | 
|---|
 | 37 | +    /* We don't support RCU path walking */ | 
|---|
 | 38 | +    if (nd->flags & LOOKUP_RCU) | 
|---|
 | 39 | +       return -ECHILD; | 
|---|
 | 40 | +#endif | 
|---|
 | 41 |  #ifdef AFS_LINUX24_ENV | 
|---|
 | 42 |      lock_kernel(); | 
|---|
 | 43 |  #endif | 
|---|
 | 44 |      AFS_GLOCK(); | 
|---|
 | 45 | + | 
|---|
 | 46 |      afs_InitFakeStat(&fakestate); | 
|---|
 | 47 |   | 
|---|
 | 48 |      if (dp->d_inode) { | 
|---|
 | 49 | --  | 
|---|
 | 50 | 1.7.3.4 | 
|---|
 | 51 |  | 
|---|