From dd1cd28300bde9c160264bdaf2e6bbd014d6b586 Mon Sep 17 00:00:00 2001 From: Derrick Brashear Date: Sun, 12 Oct 2008 19:44:46 +0000 Subject: [PATCH] STABLE14-linux-proc-walk-locking-20081012 LICENSE IPL10 FIXES 116603 sort out rcu locking versus tasklist lock. if this fails we probably have to disable walking entirely (cherry picked from commit 24ce8010cd414c8c573f2b035d186a2418900546) --- src/afs/afs_osi.c | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/src/afs/afs_osi.c b/src/afs/afs_osi.c index 11ec5f077..6018194c1 100644 --- a/src/afs/afs_osi.c +++ b/src/afs/afs_osi.c @@ -842,16 +842,16 @@ afs_osi_TraverseProcTable() #if !defined(LINUX_KEYRING_SUPPORT) struct task_struct *p; -#ifdef EXPORTED_TASKLIST_LOCK +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18) && defined(EXPORTED_TASKLIST_LOCK) if (&tasklist_lock) - read_lock(&tasklist_lock); -#endif -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16) -#ifdef EXPORTED_TASKLIST_LOCK + read_lock(&tasklist_lock); +#endif /* EXPORTED_TASKLIST_LOCK */ +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16) +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18) && defined(EXPORTED_TASKLIST_LOCK) else -#endif +#endif /* EXPORTED_TASKLIST_LOCK && LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18) */ rcu_read_lock(); -#endif +#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16) */ #ifdef DEFINED_FOR_EACH_PROCESS for_each_process(p) if (p->pid) { @@ -876,16 +876,16 @@ afs_osi_TraverseProcTable() afs_GCPAGs_perproc_func(p); } #endif -#ifdef EXPORTED_TASKLIST_LOCK +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18) && defined(EXPORTED_TASKLIST_LOCK) if (&tasklist_lock) - read_unlock(&tasklist_lock); -#endif -#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16) -#ifdef EXPORTED_TASKLIST_LOCK + read_unlock(&tasklist_lock); +#endif /* EXPORTED_TASKLIST_LOCK */ +#if LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16) +#if LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18) && defined(EXPORTED_TASKLIST_LOCK) else -#endif +#endif /* EXPORTED_TASKLIST_LOCK && LINUX_VERSION_CODE < KERNEL_VERSION(2,6,18) */ rcu_read_unlock(); -#endif +#endif /* LINUX_VERSION_CODE >= KERNEL_VERSION(2,6,16) */ #endif } #endif -- 2.39.5