libafs: Implement unixuser RW locks
authorAndrew Deason <adeason@sinenomine.net>
Thu, 5 May 2011 20:10:54 +0000 (15:10 -0500)
committerDerrick Brashear <shadow@dementia.org>
Thu, 19 May 2011 12:02:57 +0000 (05:02 -0700)
commit89b22dfe8659cd2e576cc2cd2b455598db59aacc
tree40e2c90b76dfb2e95c6823c8c0ae032e71f942a6
parent4a82c0cc4167b729108813965bd39bf86ea15e6b
libafs: Implement unixuser RW locks

Currently code dealing with changing unixuser structs does not obtain
any locks protecting the contents of the unixuser struct, though some
functions like afs_GetUser have a parameter indicating what type of
lock should be obtained. This can result in the token data for a user
being changed at the same time another thread tries to use the token
data.

To ensure mutual exclusion of such operations, add a lock field to the
unixuser struct, and actually lock it according to the intentions of
the relevant code.

Change-Id: Idd66d72f716b7e7dc08faa31ae43e9a23639bae3
Reviewed-on: http://gerrit.openafs.org/4636
Reviewed-by: Derrick Brashear <shadow@dementia.org>
Tested-by: Derrick Brashear <shadow@dementia.org>
src/afs/DOC/afs_rwlocks
src/afs/LINUX/osi_proc.c
src/afs/LINUX24/osi_proc.c
src/afs/VNOPS/afs_vnop_lookup.c
src/afs/afs.h
src/afs/afs_nfsclnt.c
src/afs/afs_pag_cred.c
src/afs/afs_pioctl.c
src/afs/afs_prototypes.h
src/afs/afs_user.c
src/afs/afs_util.c