dlm: master - dlm_controld: check all messages against enable options

David Teigland teigland at fedoraproject.org
Tue Apr 20 22:07:38 UTC 2010


Gitweb:        http://git.fedorahosted.org/git/dlm.git?p=dlm.git;a=commitdiff;h=2092236c14402ed31f9141c2d517e925fc9c12a5
Commit:        2092236c14402ed31f9141c2d517e925fc9c12a5
Parent:        29ddcc7de91828a7d96cd2f07dd054daba7b1e1f
Author:        David Teigland <teigland at redhat.com>
AuthorDate:    Mon Feb 22 11:31:30 2010 -0600
Committer:     David Teigland <teigland at 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 at 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:


More information about the cluster-commits mailing list