OpenAFS Master Repository branch, master, updated. openafs-devel-1_5_74_1-157-gdc8f18d
Gerrit Code Review
gerrit@openafs.org
Wed, 26 May 2010 15:01:40 -0700 (PDT)
The following commit has been merged in the master branch:
commit dc8f18d6f5003712bc9ef989363137a84953df07
Author: Andrew Deason <adeason@sinenomine.net>
Date: Wed Mar 31 11:40:42 2010 -0500
Protect ubik cache accesses
Currently, ubik application cached data could be updated and read by
different threads simultaneously. Add a mechanism in ubik for
protecting accessing and updating the cached data. This adds the
function ubik_CheckCache to do this, and removes ubik_CacheUpdate as
an exported function (since it's not safe).
Update all callers to use the new mechanism. In ptserver, remove the
'initd' variable; just rely on cachedVersion and ubik_CheckCache to
tell us when to re-read the database. Remove db.lock in buserver and
cheader_lock in kaserver, which served similar (though not completely
threadsafe) protection as ubik_CheckCache. Add the ubik database lock
cache_lock to protect the application cache.
Change-Id: I857a67d410e2c539197c5212c3b114c3fd0403c2
Reviewed-on: http://gerrit.openafs.org/1546
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Russ Allbery <rra@stanford.edu>
src/budb/database.c | 34 +++++++++-----
src/kauth/kadatabase.c | 38 ++++++++++------
src/ptserver/ptprocs.c | 6 +-
src/ptserver/ptutils.c | 115 +++++++++++++++++++++++++++++++-----------------
src/ptserver/ubik.c | 2 +-
src/ubik/ubik.c | 115 +++++++++++++++++++++++++++++++++++++++++++----
src/ubik/ubik.p.h | 23 +++++++++-
src/vlserver/vlutils.c | 91 +++++++++++++++++++++++++-------------
8 files changed, 311 insertions(+), 113 deletions(-)
--
OpenAFS Master Repository