| [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 |  | 
|---|