Gitweb:
http://git.fedorahosted.org/git/cluster.git?p=cluster.git;a=commitdiff;h=...
Commit: 5c55d7d3d16caf313091daa1995a988f4c807a05
Parent: 2f0613c0bab7022236dcbfc3ef4bb124c5f874a1
Author: David Teigland <teigland(a)redhat.com>
AuthorDate: Mon Feb 22 11:31:30 2010 -0600
Committer: David Teigland <teigland(a)redhat.com>
CommitterDate: Mon Feb 22 11:31:30 2010 -0600
dlm_controld: check all messages against enable options
Check every plock and deadlk related message against the
enable_plock and enable_deadlk options. Log error and drop
any message for a feature that's not enabled.
Signed-off-by: David Teigland <teigland(a)redhat.com>
---
group/dlm_controld/cpg.c | 57 ++++++++++++++++++++++++++++++++++++++-------
1 files changed, 48 insertions(+), 9 deletions(-)
diff --git a/group/dlm_controld/cpg.c b/group/dlm_controld/cpg.c
index d5245ce..e01ecc2 100644
--- a/group/dlm_controld/cpg.c
+++ b/group/dlm_controld/cpg.c
@@ -1574,40 +1574,79 @@ static void deliver_cb(cpg_handle_t handle,
break;
case DLM_MSG_PLOCK:
- receive_plock(ls, hd, len);
+ if (cfgd_enable_plock)
+ receive_plock(ls, hd, len);
+ else
+ log_error("msg %d nodeid %d enable_plock %d",
+ hd->type, nodeid, cfgd_enable_plock);
break;
case DLM_MSG_PLOCK_OWN:
- receive_own(ls, hd, len);
+ if (cfgd_enable_plock && cfgd_plock_ownership)
+ receive_own(ls, hd, len);
+ else
+ log_error("msg %d nodeid %d enable_plock %d owner %d",
+ hd->type, nodeid, cfgd_enable_plock,
+ cfgd_plock_ownership);
break;
case DLM_MSG_PLOCK_DROP:
- receive_drop(ls, hd, len);
+ if (cfgd_enable_plock && cfgd_plock_ownership)
+ receive_drop(ls, hd, len);
+ else
+ log_error("msg %d nodeid %d enable_plock %d owner %d",
+ hd->type, nodeid, cfgd_enable_plock,
+ cfgd_plock_ownership);
break;
case DLM_MSG_PLOCK_SYNC_LOCK:
case DLM_MSG_PLOCK_SYNC_WAITER:
- receive_sync(ls, hd, len);
+ if (cfgd_enable_plock && cfgd_plock_ownership)
+ receive_sync(ls, hd, len);
+ else
+ log_error("msg %d nodeid %d enable_plock %d owner %d",
+ hd->type, nodeid, cfgd_enable_plock,
+ cfgd_plock_ownership);
break;
case DLM_MSG_PLOCKS_STORED:
- receive_plocks_stored(ls, hd, len);
+ if (cfgd_enable_plock)
+ receive_plocks_stored(ls, hd, len);
+ else
+ log_error("msg %d nodeid %d enable_plock %d",
+ hd->type, nodeid, cfgd_enable_plock);
break;
case DLM_MSG_DEADLK_CYCLE_START:
- receive_cycle_start(ls, hd, len);
+ if (cfgd_enable_deadlk)
+ receive_cycle_start(ls, hd, len);
+ else
+ log_error("msg %d nodeid %d enable_deadlk %d",
+ hd->type, nodeid, cfgd_enable_deadlk);
break;
case DLM_MSG_DEADLK_CYCLE_END:
- receive_cycle_end(ls, hd, len);
+ if (cfgd_enable_deadlk)
+ receive_cycle_end(ls, hd, len);
+ else
+ log_error("msg %d nodeid %d enable_deadlk %d",
+ hd->type, nodeid, cfgd_enable_deadlk);
break;
case DLM_MSG_DEADLK_CHECKPOINT_READY:
- receive_checkpoint_ready(ls, hd, len);
+ if (cfgd_enable_deadlk)
+ receive_checkpoint_ready(ls, hd, len);
+ else
+ log_error("msg %d nodeid %d enable_deadlk %d",
+ hd->type, nodeid, cfgd_enable_deadlk);
break;
case DLM_MSG_DEADLK_CANCEL_LOCK:
- receive_cancel_lock(ls, hd, len);
+ if (cfgd_enable_deadlk)
+ receive_cancel_lock(ls, hd, len);
+ else
+ log_error("msg %d nodeid %d enable_deadlk %d",
+ hd->type, nodeid, cfgd_enable_deadlk);
break;
default: