From 6309cc42ee336ebb93e4023b680100ac1ee50348 Mon Sep 17 00:00:00 2001 From: Derrick Brashear Date: Wed, 28 Aug 2002 04:27:08 +0000 Subject: [PATCH] hold tasklist_lock in the right place. doesn't yet address versions which don't export it. (cherry picked from commit 38025e06508a7a83247ca4f8957fb8e5f32dec78) --- src/afs/afs_osi.c | 19 ++++++++----------- 1 file changed, 8 insertions(+), 11 deletions(-) diff --git a/src/afs/afs_osi.c b/src/afs/afs_osi.c index c654c7bdf..023be0926 100644 --- a/src/afs/afs_osi.c +++ b/src/afs/afs_osi.c @@ -779,15 +779,14 @@ void afs_osi_TraverseProcTable() void afs_osi_TraverseProcTable() { struct task_struct *p; + + read_lock(&tasklist_lock); for_each_task(p) if (p->pid) { if (p->state & TASK_ZOMBIE) continue; -#if 0 - if (p->flags & ) - continue; -#endif afs_GCPAGs_perproc_func(p); } + read_unlock(&tasklist_lock); } #endif @@ -986,13 +985,11 @@ const struct AFS_UCRED *afs_osi_proc2cred(AFS_PROC *pr) (pr->state == TASK_INTERRUPTIBLE) || (pr->state == TASK_UNINTERRUPTIBLE) || (pr->state == TASK_STOPPED)) { - read_lock(&tasklist_lock); - cr.cr_ref=1; - cr.cr_uid=pr->uid; - cr.cr_ngroups=pr->ngroups; - memcpy(cr.cr_groups, pr->groups, NGROUPS * sizeof(gid_t)); - read_unlock(&tasklist_lock); - rv = &cr; + cr.cr_ref=1; + cr.cr_uid=pr->uid; + cr.cr_ngroups=pr->ngroups; + memcpy(cr.cr_groups, pr->groups, NGROUPS * sizeof(gid_t)); + rv = &cr; } return rv; -- 2.39.5