cluster: RHEL6 - rgmanager: Transmogrify states to expected values
Ryan McCabe
rmccabe at fedoraproject.org
Tue May 1 15:01:43 UTC 2012
Gitweb: http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=f428fc18c95839c53d4b04f13ea84c529d77a024
Commit: f428fc18c95839c53d4b04f13ea84c529d77a024
Parent: 22b4572b24a6d896229da908517a0a3ddd686985
Author: Lon Hohberger <lhh at redhat.com>
AuthorDate: Tue Apr 24 10:23:33 2012 -0400
Committer: Ryan McCabe <rmccabe at redhat.com>
CommitterDate: Tue May 1 10:59:11 2012 -0400
rgmanager: Transmogrify states to expected values
Because central_processing looks for state == 0 and LOCK_HELD is
2, we need to flip the states to match DLM states.
Signed-off-by: Lon Hohberger <lhh at redhat.com>
Reviewed-by: Fabio M. Di Nitto <fdinitto at redhat.com>
Reviewed-by: Ryan McCabe <rmccabe at redhat.com>
---
rgmanager/src/clulib/cpg_lock.c | 23 +++++++++++++++++++++--
1 files changed, 21 insertions(+), 2 deletions(-)
diff --git a/rgmanager/src/clulib/cpg_lock.c b/rgmanager/src/clulib/cpg_lock.c
index a747419..7cff2a3 100644
--- a/rgmanager/src/clulib/cpg_lock.c
+++ b/rgmanager/src/clulib/cpg_lock.c
@@ -24,15 +24,34 @@ dlm2cpg(struct dlm_lksb *dlm, struct cpg_lock *cpg)
{
memset(cpg, 0, sizeof(*cpg));
cpg->local_id = dlm->sb_lkid;
- cpg->state = dlm->sb_status;
+ switch(dlm->sb_status) {
+ case 0:
+ cpg->state = LOCK_HELD;
+ break;
+ case EINPROG:
+ cpg->state = LOCK_PENDING;
+ break;
+ default:
+ cpg->state = LOCK_FREE;
+ break;
+ }
}
static void
cpg2dlm(struct cpg_lock *cpg, struct dlm_lksb *dlm)
{
memset(dlm, 0, sizeof(*dlm));
- dlm->sb_status = cpg->state;
dlm->sb_lkid = cpg->local_id;
+ switch(cpg->state) {
+ case LOCK_HELD:
+ dlm->sb_status = 0;
+ break;
+ case LOCK_PENDING:
+ default:
+ /* XXX LOCK_FREE -> DLM state? */
+ dlm->sb_status = EINPROG;
+ break;
+ }
}
More information about the cluster-commits
mailing list