From 8ba81c38a5ebe53cb7a12673e7cd100b1dbd29ff Mon Sep 17 00:00:00 2001 From: Derrick Brashear Date: Fri, 21 Jun 2013 10:50:16 -0400 Subject: [PATCH] libafs: track dynroot locks for cmdebug the dynroot dir and symlink locks are not currently tracked; it would be helpful to know when these locks are in play for tracking contention Change-Id: Ibe18586fa5d0ef0e3ea9e7153d79ab64df46ebf3 Reviewed-on: http://gerrit.openafs.org/9997 Tested-by: BuildBot Reviewed-by: Jeffrey Altman --- src/afs/afs_callback.c | 2 ++ src/afs/afs_dynroot.c | 4 ++-- src/afs/afs_prototypes.h | 2 ++ 3 files changed, 6 insertions(+), 2 deletions(-) diff --git a/src/afs/afs_callback.c b/src/afs/afs_callback.c index c2d36a1db..7e0e2dd87 100644 --- a/src/afs/afs_callback.c +++ b/src/afs/afs_callback.c @@ -65,6 +65,8 @@ static struct ltable { { "afs_discon_lock", (char *)&afs_discon_lock}, { "afs_disconDirtyLock", (char *)&afs_disconDirtyLock}, { "afs_discon_vc_dirty", (char *)&afs_xvcdirty}, + { "afs_dynrootDirLock", (char *)&afs_dynrootDirLock}, + { "afs_dynSymlinkLock", (char *)&afs_dynSymlinkLock}, }; unsigned long lastCallBack_vnode; unsigned int lastCallBack_dv; diff --git a/src/afs/afs_dynroot.c b/src/afs/afs_dynroot.c index 9ca8131c5..144a2d498 100644 --- a/src/afs/afs_dynroot.c +++ b/src/afs/afs_dynroot.c @@ -54,7 +54,7 @@ static int afs_dynrootInit = 0; static int afs_dynrootEnable = 0; static int afs_dynrootCell = 0; -static afs_rwlock_t afs_dynrootDirLock; +afs_rwlock_t afs_dynrootDirLock; /* Start of variables protected by afs_dynrootDirLock */ static char *afs_dynrootDir = NULL; static int afs_dynrootDirLen; @@ -74,7 +74,7 @@ struct afs_dynSymlink { char *target; }; -static afs_rwlock_t afs_dynSymlinkLock; +afs_rwlock_t afs_dynSymlinkLock; /* Start of variables protected by afs_dynSymlinkLock */ static struct afs_dynSymlink *afs_dynSymlinkBase = NULL; static int afs_dynSymlinkIndex = 0; diff --git a/src/afs/afs_prototypes.h b/src/afs/afs_prototypes.h index 0c0f44598..f98aef2ae 100644 --- a/src/afs/afs_prototypes.h +++ b/src/afs/afs_prototypes.h @@ -290,6 +290,8 @@ extern void afs_PopulateDCache(struct vcache *avc, afs_size_t apos, /* afs_disconnected.c */ /* afs_dynroot.c */ +extern afs_rwlock_t afs_dynrootDirLock; +extern afs_rwlock_t afs_dynSymlinkLock; extern int afs_IsDynrootFid(struct VenusFid *fid); extern int afs_IsDynrootMountFid(struct VenusFid *fid); extern int afs_IsDynrootAnyFid(struct VenusFid *fid); -- 2.39.5