[Ocfs2-commits] khackel commits r1940 -
branches/dlm-reco-mig/fs/ocfs2/dlm
svn-commits at oss.oracle.com
svn-commits at oss.oracle.com
Fri Mar 4 18:42:05 CST 2005
Author: khackel
Date: 2005-03-04 18:42:02 -0600 (Fri, 04 Mar 2005)
New Revision: 1940
Modified:
branches/dlm-reco-mig/fs/ocfs2/dlm/dlmmaster.c
Log:
* split dlm_change_lockres_owner out of dlm_set_lockres_owner,
as per zach's suggestion. only direct caller of
dlm_set_lockres_owner should be dlm_init_lockres
Modified: branches/dlm-reco-mig/fs/ocfs2/dlm/dlmmaster.c
===================================================================
--- branches/dlm-reco-mig/fs/ocfs2/dlm/dlmmaster.c 2005-03-04 22:21:29 UTC (rev 1939)
+++ branches/dlm-reco-mig/fs/ocfs2/dlm/dlmmaster.c 2005-03-05 00:42:02 UTC (rev 1940)
@@ -350,21 +350,10 @@
* LOCK RESOURCE FUNCTIONS
*/
-static inline void dlm_set_lockres_owner(dlm_ctxt *dlm, dlm_lock_resource *res,
- u8 owner, int init)
+static inline void dlm_set_lockres_owner(dlm_ctxt *dlm,
+ dlm_lock_resource *res,
+ u8 owner)
{
- if (!init) {
- if (owner == res->owner)
- return;
-
- if (res->owner == dlm->group_index)
- atomic_dec(&dlm->local_resources);
- else if (res->owner == DLM_LOCK_RES_OWNER_UNKNOWN)
- atomic_dec(&dlm->unknown_resources);
- else
- atomic_dec(&dlm->remote_resources);
- }
-
if (owner == dlm->group_index)
atomic_inc(&dlm->local_resources);
else if (owner == DLM_LOCK_RES_OWNER_UNKNOWN)
@@ -375,7 +364,24 @@
res->owner = owner;
}
+static inline void dlm_change_lockres_owner(dlm_ctxt *dlm,
+ dlm_lock_resource *res,
+ u8 owner)
+{
+ if (owner == res->owner)
+ return;
+ if (res->owner == dlm->group_index)
+ atomic_dec(&dlm->local_resources);
+ else if (res->owner == DLM_LOCK_RES_OWNER_UNKNOWN)
+ atomic_dec(&dlm->unknown_resources);
+ else
+ atomic_dec(&dlm->remote_resources);
+
+ dlm_set_lockres_owner(dlm, res, owner);
+}
+
+
static void dlm_lockres_release(struct kref *kref)
{
dlm_lock_resource *res;
@@ -446,7 +452,7 @@
kref_init(&res->refs, dlm_lockres_release);
- dlm_set_lockres_owner(dlm, res, DLM_LOCK_RES_OWNER_UNKNOWN, 1);
+ dlm_set_lockres_owner(dlm, res, DLM_LOCK_RES_OWNER_UNKNOWN);
res->state = DLM_LOCK_RES_IN_PROGRESS;
memset(res->lvb, 0, DLM_LVB_LEN);
@@ -546,7 +552,7 @@
if (flags & LKM_LOCAL) {
/* caller knows it's safe to assume it's not mastered elsewhere
* DONE! return right away */
- dlm_set_lockres_owner(dlm, res, dlm->group_index, 0);
+ dlm_change_lockres_owner(dlm, res, dlm->group_index);
__dlm_insert_lock(dlm, res);
spin_unlock(&dlm->spinlock);
/* lockres still marked IN_PROGRESS */
@@ -742,7 +748,7 @@
/* set the lockres owner */
spin_lock(&res->spinlock);
- dlm_set_lockres_owner(dlm, res, m, 0);
+ dlm_change_lockres_owner(dlm, res, m);
spin_unlock(&res->spinlock);
leave:
More information about the Ocfs2-commits
mailing list