]> git.michaelhowe.org Git - packages/o/openafs.git/commitdiff
keyring-pag-finduser-requires-glock-20070320
authorChaskiel M Grundman <cg2v@andrew.cmu.edu>
Tue, 20 Mar 2007 18:41:02 +0000 (18:41 +0000)
committerDerrick Brashear <shadow@dementia.org>
Tue, 20 Mar 2007 18:41:02 +0000 (18:41 +0000)
identical to the fix from chas@cmf.nrl.navy.mil

src/afs/LINUX/osi_groups.c

index fa1cbe12c79e9735408989d415e5590d79955252..997ec7a6847d09c9d91d44506fdbae79dd8c0543 100644 (file)
@@ -594,13 +594,18 @@ static void afs_pag_destroy(struct key *key)
 {
     afs_uint32 pag = key->payload.value;
     struct unixuser *pu;
+    int locked = ISAFS_GLOCK();
 
+    if (!locked)
+       AFS_GLOCK();
     pu = afs_FindUser(pag, -1, READ_LOCK);
     if (pu) {
        pu->ct.EndTimestamp = 0;
        pu->tokenTime = 0;
        afs_PutUser(pu, READ_LOCK);
     }
+    if (!locked)
+       AFS_GUNLOCK();
 }
 
 struct key_type key_type_afs_pag =