Gitweb:
http://git.fedorahosted.org/git/dlm.git?p=dlm.git;a=commitdiff;h=2092236c...
Commit: 2092236c14402ed31f9141c2d517e925fc9c12a5
Parent: 29ddcc7de91828a7d96cd2f07dd054daba7b1e1f
Author: David Teigland <teigland(a)redhat.com>
AuthorDate: Mon Feb 22 11:31:30 2010 -0600
Committer: David Teigland <teigland(a)redhat.com>
CommitterDate: Tue Apr 20 17:02:17 2010 -0500
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 ef0b741..20d59d5 100644
--- a/group/dlm_controld/cpg.c
+++ b/group/dlm_controld/cpg.c
@@ -1577,40 +1577,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: