From efd9a7e32dc793c45f056be5c796f25db429a054 Mon Sep 17 00:00:00 2001 From: Derrick Brashear Date: Wed, 28 Aug 2002 05:30:06 +0000 Subject: [PATCH] linux-tasklist-lock-export-detection-20020829 if you don't have a versioned kernel, so sorry. ==================== This delta was composed from multiple commits as part of the CVS->Git migration. The checkin message with each commit was inconsistent. The following are the additional commit messages. ==================== add macro i forgot to commit --- acconfig.h | 1 + acinclude.m4 | 4 ++++ src/afs/afs_osi.c | 4 ++++ 3 files changed, 9 insertions(+) diff --git a/acconfig.h b/acconfig.h index f33668b69..37f9e3740 100644 --- a/acconfig.h +++ b/acconfig.h @@ -35,6 +35,7 @@ static /**/const char *const rcsid[] = { (char *)rcsid, "\100(#)" msg } #undef STRUCT_INODE_HAS_I_TRUNCATE_SEM #undef STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS #undef STRUCT_INODE_HAS_I_DEVICES +#undef EXPORTED_TASKLIST_LOCK #undef ssize_t #undef HAVE_STRUCT_BUF diff --git a/acinclude.m4 b/acinclude.m4 index 7a3c03c4f..7b86cd4a6 100644 --- a/acinclude.m4 +++ b/acinclude.m4 @@ -140,8 +140,12 @@ case $system in LINUX_FS_STRUCT_INODE_HAS_I_DIRTY_DATA_BUFFERS LINUX_FS_STRUCT_INODE_HAS_I_DEVICES LINUX_INODE_SETATTR_RETURN_TYPE + LINUX_EXPORTS_TASKLIST_LOCK LINUX_NEED_RHCONFIG LINUX_WHICH_MODULES + if test "x$ac_cv_linux_exports_tasklist_lock" = "xyes" ; then + AC_DEFINE(EXPORTED_TASKLIST_LOCK) + fi if test "x$ac_cv_linux_func_inode_setattr_returns_int" = "xyes" ; then AC_DEFINE(INODE_SETATTR_NOT_VOID) fi diff --git a/src/afs/afs_osi.c b/src/afs/afs_osi.c index 28714f70e..468655f37 100644 --- a/src/afs/afs_osi.c +++ b/src/afs/afs_osi.c @@ -793,13 +793,17 @@ void afs_osi_TraverseProcTable() { struct task_struct *p; +#ifdef EXPORTED_TASKLIST_LOCK read_lock(&tasklist_lock); +#endif for_each_task(p) if (p->pid) { if (p->state & TASK_ZOMBIE) continue; afs_GCPAGs_perproc_func(p); } +#ifdef EXPORTED_TASKLIST_LOCK read_unlock(&tasklist_lock); +#endif } #endif -- 2.39.5